常用的語句用的最多的無非就是增、刪、改、查 MongoDB數據存儲格式是bson,其實這種格式除了幾個特殊的類型,其他的就是json的格式。所以部分數據顯示可以用json格式化。在此推薦個網站可以格式化http://www.bejson.com/,雖然它要報json格式異常,但是格式還是轉好了的 轉 ...
常用的語句用的最多的無非就是增、刪、改、查
MongoDB數據存儲格式是bson,其實這種格式除了幾個特殊的類型,其他的就是json的格式。所以部分數據顯示可以用json格式化。在此推薦個網站可以格式化http://www.bejson.com/,雖然它要報json格式異常,但是格式還是轉好了的
轉換前:
轉換後:
1.增
添加數據有3種方法:
1.insert
db.Client.insert({_id:new ObjectId(),Name:"xx",Sex:0,Created:new Date()});
_id可以不帶,系統會自己給你加上,如果有特殊要求可以自己寫
2.update
db.Client.update({ Name : "xxx" }, { $set : { Sex: 1 } }, { upsert : true });
如果Client表中沒有 Name : "xxx" 的記錄則會新加一條記錄,如果有記錄則更新 Sex: 1
upsert 為true的意思是如果沒有找到對應的記錄則添加,如果找到則更新。該參數預設情況下為false,則沒有找到數據就不添加,也不更新
3.save
db.Client.save({Name:"xx",Sex:0,Created:new Date()});
添加時不用帶_id,否則它會去更新_id對應的其他值
特別提醒:
new ObjectId() 是新建ObjectId的意思
new Date() 獲取當前時間,系統預設的是0時區
2.刪
remove
db.Client.remove({Name:"xxx"});
刪除滿足{Name:"xxx"}條件的所有數據
3.2里新加了2種新的刪除方法
db.collection.deleteOne() 刪除滿足條件的第一個文檔
db.collection.deleteMany() 刪除滿足條件的所有文檔,執行之後會返回刪除的個數 如:{ "acknowledged" : true, "deletedCount" : 3 }
這2種方法還沒用過,先記錄一下
3.改
修改數據有3種方法:
1.update
db.Client.update({Name:"xxx"},{$set:{Sex:0}},{multi:true})
查詢條件:{Name:"xxx"}
修改項:{$set:{Sex:0}} 其中$set可以更換為其他修改器 $set為更新 $inc為累加($inc不能應用於非數字數據) $unset 刪除指定的列
其他的$push $ne $addToSet $pop $pull 修改器還沒仔細研究過,以後再來補充和細化
是否批量更新:{multi:true} 如果為false則只更新滿足條件的第一個文檔,為true則更新所有滿足條件的
2.save
db.Client.save({_id:new ObjectId("574fa87df2e2723e85e624a3"),Name:"xx",Sex:0,Created:new Date()});
帶上_id就可以更新指定id的所有列
特別提醒:
如果用save進行保存時少了Created列,那麼更新後的數據就會沒有Created列
3.findAndModify 更新並返回更新的數據
db.Client.findAndModify({query:{Sex:0},update:{$set:{Sex:1}}});
查詢條件:query為鍵,查詢條件為值,如上所示
修改項:update為鍵,修改列和項為值,如上所示,其中$set也可更換為其他修改器
需要註意的是,如果查詢結果是多個,它只會更新滿足條件的第一個文檔並返回
4.查
一般比較常用的是find、findOne,下一篇詳細來寫