天天看點

mongo資料庫學習

資料查詢:

查詢需要的鍵:

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中的元素。