关于javascript:mongoDB-常用语法使用

3次阅读

共计 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 即可 
正文完
 0