MongoDB 增删改查 以及常用命令

MongoDB 增删改查 以及常用命令

==============  UPDATE  ==================



批量更新
db.sp_demo.update({name:'chancy'},{$set:{name:'chancy1111'}},false,true)

数值累加
db.sp_demo.update({index:3},{$inc:{index:1}})

去除多余列
update({name:'nodejs'},{$unset:{add:'massage'}})

向集合中的数组添加数据
db.sp_demo.update({name:'array'},{$push:{list:'arr1'}});

向集合中批量添加数据
db.sp_demo.update({name:'array'},{$pushAll:{list:['arr1','arr2','arr3']}});

向集合中添加列
db.sp_demo.update({name:'chancy'},{$set:{addCol:'new col'}},true);

当集合中的数组不存在指定值的时候,则会插入该值
db.sp_demo.update({name:'array'},{$addToSet:{list:'arr1'}});

删除集合中的数组值
-1 : 删除第一个数值
1 : 删除最后一个数值
db.sp_demo.update({name:'array'},{$pop:{list:-1}})

删除集合中的指定数据
db.sp_demo.update({name:'array'},{$pull:{list:'arr3'}})

批量删除数组中的值
db.sp_demo.update({name:'array'},{$pullAll:{list:['aha1','aha2']}})

数组定位器 $
匹配数组中的子字段值
db.sp_demo.update({'list.lang':'java'},{
        $set:{
               'list.$.year': '1995' 
            }
    })



==============  FIND  ==================

db.sp_demo.find({条件},{查询列});

查询集合中的指定字段
_id:1  查询_id字段
name: 0 不查询name字段(不查询不写即可)
db.sp_demo.find({},{_id:1})


模糊查找 -- 查询集合中包含 ch 字符串的数据
db.mongo_demos.find({name:{$regex:/ch/i}},{_id:0})




==============  创建用户 ==================

//创建访问所有数据库的账号
use admin

db.createUser(
  {
    user: "sipeng",
    pwd: "sipeng",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

//创建单个数据库账号
use sp-blog

db.createUser(
  {
    user: "sipeng",
    pwd: "sipeng",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)


==============  连接mongodb ==================

命令行
mongo --host <host address> --port <port> --username=<username> --password=<password> <databases>
//程序
mongodb://<username> : <password>@<host address>:<port>/<databases>