天天看点

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