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即可