文档:Mongodb数据库.note

  链接:http://note.youdao.com/noteshare?id=46dcb0788d9f005392c8b0e4c9e31e4d&sub=09EC956E45294DDC8443C95F9943D6C9

一、客户端启动和服务端开启命令

  mongod 服务端
    --dbpath
    --port
    --logpath
  mongo 客户端
    --port
    --host

二、基础命令

  show dbs
  show collections
  show tables

三、如何创建库

  1、use 数据库名
  2、添加一条数据
    db.collectionName.insert({文档})
    db.createCollection(name)
  3、删除数据库:db.dropDatabase()
     删除集合:db.collectionName.drop()

四、CRUD

  1、insert---插入

    插入一条文档:
      db.collectionName.insert({文档})
    插入多条文档:
      db.collectionName.insert([{文档1},{文档2},{文档3},....])

  2、查找--find

    db.collectionName.find({查询表达式},{field1:1/0}) --1显示,0不显示

    查询表达式
      = {key:value}
      < $lt
      > $gt
      <= $lte
      >= $gte
      != $ne

      {$nin:{age:[1,2,3]}} 查询不在数组中的数据
      {$in:{age:[12,13,14]} 查询在数组中的数据
      {$all:{hobby:['a','b','c']}} 满足数组中的所有内容的条件
      {$mod:{age:[5,1]}

      {$and:[{},{},{}]}
      {$or:[{},{},{}]}
      {$nor:[{},{},{}]}

  3、聚合

    db.collectionName.aggregate([{管道1},{管道2},{管道3}])
    {$match:{查询表达式}}
    {$group:{_id:'$field',avg/sum/max/min:{$avg/$sum/$max/$min:1/'$field'}}}

  4、游标

    将查询结果赋值给一个变量,这个标量就是游标,游标就相当于python中迭代器,我们可以从中一个一个取出查询结果。

    var cursor = db.collectionName.find()
    cursor.hasNext()---是否有下一个(如果游标到结尾,才为false)
    cursor.next()---获取下一个。

    cursor.forEach(回调函数)
    作用:回调函数接收游标中每一个查询结果,并做批量操作。

  5、hash

    (1)什么是hash
      Hash :散列,通过关于键值(key)的函数,将数据映射到内存存储中一个位置来访问。这个过程叫做Hash
    (2)特点
      正向快速
      逆向困难
      输入敏感
      冲突避免
    (3)作用
      给数据打指纹---指纹就是唯一标识--->去除重复
      密码存储
    (4)什么叫hash碰撞?
    (5)字符串加密和文件加密?