mongoDB 罕用语法应用

删除数据库或汇合

db.汇合.drop( ):删除整个汇合,这个在理论工作中肯定要审慎应用,如果是程序,肯定要二次确认。

db.dropDatabase( ):删除整个数据库,在删除库时,肯定要先进入数据库,而后再删除。理论工作中这个根本不必,理论工作可定须要保留数据和痕迹的。

批量插入
   db.test.insert([       {"age":1},       {"age":2},       {"age":3}      ])
批改update

根底update修改器

$set修改器 (用来批改一个指定的键值(key))
 db .汇合名称.update({"id":"1"},{"$set":{age:21}})    

批改嵌套内容

db.汇合名称.update({"id:1"},$set:{user.name:"xiaoming"})
$unset用于将key删除
db.汇合名称.update({id:1},{$unset:{age:""}})
$inc 用于计算并且批改
db.汇合名称.update({id:1},{$inc:{age:-2}}) //自身减2
$multi选项 (用于批量插入/循环插入)
db.汇合名称。update({},{sex:'男'},{$multi:true})
$upsert选项** (有更新/没有增加)
db.汇合名称.update({},{$set:{sex:"男"},{$upsert:true}})

update数组修改器 (例如:汇合中有一个空数组:arr=[])

$push (追加数组)
db.汇合名称.update({id:1},{$push:{arr:"hello"}}) // 相当于 arr.push("hello")
嵌套属性追加数组
db.汇合名称.update({id:1},{$push:{user.arr:"hello"}})
$ne 查找是否存在 (存在不追加,不存在追加)
db.汇合名称.update({id:1},{arr:{$ne:"hello"},{$push:{arr."hello"}})
$addToSet (相似于$ne,她更简略一些)
db.汇合名称.update({id:1},{$addToSet:{arr:"hello"}})
$each 批量追加
var newArr=["hello","world"];  db.汇合名称.update({id:1},{$addToSet:{arr:{$each:newArr}})
$pop 删除数组
 db.汇合名称.update({id:1},{$pop:{arr:1}}) // 1 代表尾部删除  \-1 代表头部删除
数组指定位数批改 (相似于对象模式,毕竟数组也是对象嘛)
db.汇合名称.update({id:1},{$set:{arr.1:"world"}})
状态返回
     db.汇合名称.update({id:1},{$set:{age:18}})              var status=db.rancommand({getLastError:true})              printjson(status)               返回:{               "connectionId" : 1,               "updatedExisting" : true,  // 判断是否操作胜利               "n" : 2,               "syncMillis" : 0,               "writtenTo" : null,               "err" : null,               "ok" : 1               }
操作平安 findAndModify 翻译: 找到并批改
   var findAndModifyObj ={               findAndModify:"汇合名称",               query:{id:1}, // 通过什么查找               sort:false, //排序               remove:false, 是否删除 与update抵触 只能写一个               upsert:false, 没有找到是否增加               fields:[],//须要返回的字段               update:{$set:{age:18}}, //更新               new:true    //更新实现,须要查看后果,如果为false不进行查看后果              }              var result=db.runCommand(findAndModifyObj);                            printjson(result)

查问 find()

简略查问
db.汇合名称.find() //全副查问  db.汇合名称.find({id:1}) //依据id等于1查问 
筛选字段
db.汇合名称.find({id:1},{name:true,age:false}) //返回数据中不含有age
不等修饰符

db.汇合名称.find({id:{$lt:5}}) //查找id字段小于5的所有数据
$in 查问一个区间
db.汇合名称.find({id:{$in:[1,6]}}) // 查问id字段在1到6之间的数据
$or 条件 或
db.汇合名称.find({id:{$or:[               {$in:[1,6]},               {age:18}              ]}}) // 查问id字段在1到6之间或年龄为18岁的数据
$and 条件 与
db.汇合名称.find({id:{$and:[               {$in:[1,6]},               {age:18}              ]}}) // 查问id字段在1到6之间并且年龄为18岁的数据
find() 数组查问
db.汇合名称.find({arr:['hello','world']}) //准确查找 只有arr等于['hello','world']                db.汇合名称.find({arr:'hello'}) //含糊查找 arr中含有'hello'即可                db.汇合名称.find({arr:{$all:['hello','world']}}) //并且关系 含有'hello'并且含有'world' 参能满足条件                db.汇合名称.find({arr:{$in:['hello','world']}}) //或关系 含有'hello'或者含有'world' 参能满足条件                db.汇合名称.find({arr:{$size:2}}) //依据数组长度查找                db.汇合名称.find({},{arr:{$slice:2}}) //截取 返回数据只显示数组前两位 最初一项的话 间接写-1即可