資料查詢:
查詢需要的鍵:
db.user.find({},{"username":1,"email":1}
賽選掉不需要的鍵:
db.user.find({},{"email",0}) #可以把_id 剔除掉。
$exist:查詢鍵是否存在。
如果是一個數組:{a:[{},{},{}]}
可以使用{"a.0.key1":}
.update({查詢條件},{$unset:{"key.key.key":1}} 删除内容。
.update({查詢條件},{$unset:{"key.0":1}}。#對數組執行操作隻會等于賦空值。
.update({},{$rename:{"key1name":"key2name"}})
數組定位:可以通過索引,也可以通過$符号定位。
數組查詢:
數組中含有特定鍵值查詢:
“db.food.insert({"fruit" : ["apple", "banana", "peach"]})”
db.food.find({"fruit" : "banana"}) #會查詢到上面剛剛插入的集合。
“> db.food.insert({"_id" : 1, "fruit" : ["apple", "banana", "peach"]})
> db.food.insert({"_id" : 2, "fruit" : ["apple", "kumquat", "orange"]})
> db.food.insert({"_id" : 3, "fruit" : ["cherry", "banana", "apple"]})”
資料中同時含有多個值查詢:
“要找到既有"apple"又有"banana"的文檔,可以使用"$all"來查詢:”
“db.food.find({fruit : {"fruit": {$all : ["apple", "banana"]}})”
要是隻有一個元素:{"fruit": {$all:["apple"]}} 等價于 {"fruit":"apple"}
對特定長度的數組進行查詢:
“db.food.find({"fruit" : {"$size" : 3}})”
數組更新操作符号:
push;$push{"tags","tools"}
pushAll $pushAll{"tags",["tools","tools2"]}
$addtoset必須結合addtoset
$pop{"tags",1}. 删除tags數組的最後一個值
$pop{"tags",-1} 删除數組的第一個元素
$pull{"tags":"lable"} 删除tags數組的label标簽
$pullall{"tags",["label1",label2"]}. 删除數組的多個值
使用特定條件删除元素
db.lists.insert({"todo" : ["dishes", "laundry", "dry cleaning"]})
db.lists.update({}, {"$pull" : {"todo" : "laundry"}}) #删除todo數組中含有laundry中的元素。