共计 2417 个字符,预计需要花费 7 分钟才能阅读完成。
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 即可
正文完