MongoDB查询操作

一、find()查询
查询集合中文档的子集,它有两个参数,第一个参数作为查询文档,指定匹配查询条件的文档,第二个参数指定想要显示的键值。
find()与find({})是等价的,会查询所有的文档,当文档的数量超过20个,则只显示前20个文档。
这里写图片描述
查询指定条件的文档,并选择指定的键值,可以将不必要的键值剔除掉:
这里写图片描述

比较操作符
比较操作符包括:”$lt” ,”$lte”,”$gt”,”$gte” ,分别对应<,<=,>,>=可用于查找一个范围内的值:
这里写图片描述

查询 不等于指定值得文档,使用 “$ne” :
这里写图片描述

或操作:”$in”,”$or”
“$in”查询:用于查询一个键的多个值:
这里写图片描述

“$nin”与数组中所有元素不匹配的文档:
这里写图片描述

“$or”对多个键采用”或”操作
这里写图片描述

“$not”取反操作,是元条件句,可以用在任何其他条件之上:
这里写图片描述

条件语句是内层文档的键:{age:{“$lt”:12,”$gt”:32}};
修改器是外层文档的键:{“$inc”:{age:2}}
元操作符 (“$and”,”$or”,”$not”)也是外层文档中:{“$or”:[{age:12},{name:”zhangsan”}]}

一个键可以有任意多个条件,但是一个键不能对应多个修改器。例如:{“$inc”:{age:3},”$set”:{age:39}}这样是不行的。

null查询
会匹配某个键为null的文档,也会匹配不包含这个键的文档:
这里写图片描述

查询数组:
这里写图片描述
进行精确匹配时,对于缺少元素或者冗余元素无效,顺序也很重要:
这里写图片描述
查询特定位置的元素:
这里写图片描述

“$all”:通过多个元素匹配数组,顺序无所谓:
这里写图片描述

“$size”:查询特定长度的数组,不能与其他查询条件组合使用:
这里写图片描述

“$slice”:返回数组中部分元素:负数:前面的元素,整数:后面的元素。返回文档中所有的键(name,age),而不是部分键。
这里写图片描述
也可以指定偏移量,返回指定范围内的数组元素,例如返回第1~2的元素(0是起始位置,但不包括,偏移量是2):
这里写图片描述

$操作符:根据查询条件(查找数组中的元素,而不是查找文档的条件),返回数组中的第一个匹配的元素:
这里写图片描述

数组内范围查询:查询条件中的每条语句可以匹配不同的数组元素,必须要有不同的元素分别满足不同的条件,例如一个元素满足第一个条件,另一个元素满足另一个条件,其他情况不会查出文档。
两个查询条件的情况如下(必须有元素满足这两个条件):
这里写图片描述
一个查询条件的情况如下(只要有一个元素满足该条件就行):
这里写图片描述

“$elemMatch”:要求同时使用查询条件中的两个语句与一个数组元素进行比较,只要有一个元素同时满足该条件就返回文档。该操作符不会匹配非数组元素:
这里写图片描述

查询内嵌文档:
要查询完整的子文档,必须要精确匹配,而且顺序也很重要:
这里写图片描述
为了避免导致无法查出文档,可以使用特定的键值进行查询:
这里写图片描述

“$elemMatch”:针对内嵌文档中的多个键值进行查询,避免不同的内嵌文档满足不同的条件的情况,否则会查询出分别满足条件的所有文档,而不是一个满足条件的文档。使得单个内嵌文档匹配查询条件:
这里写图片描述
可以使用”$elemMatch”(数组中也是),可以查找一个文档同时满足多个条件:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值