mongoDB 經常使用語法使用

mongoDB 經常使用語法使用

刪除數據庫或集合

db.集合.drop( ):刪除整個集合,這個在實際工做中必定要謹慎使用,若是是程序,必定要二次確認。數據庫

db.dropDatabase( ):刪除整個數據庫,在刪除庫時,必定要先進入數據庫,而後再刪除。實際工做中這個基本不用,實際工做可定須要保留數據和痕跡的。json

批量插入

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

不等修飾符

image.png

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便可
相關文章
相關標籤/搜索