【MongoDB】数组和范围查询的相互作用
程序员文章站
2022-06-13 13:28:50
...
文档中的标量(非数组元素)必须与查询条件中的每一条语句相匹配。例如,如果使用{“x”:{$gt:10, $lt:20}进行查询,只会匹配“X”键的大于等于10并且小于等于20的文档。但是假如某个文档的x字段是一个数组,如果x的键的某一个元素与查询的任何一条语句相匹
文档中的标量(非数组元素)必须与查询条件中的每一条语句相匹配。例如,如果使用{“x”:{"$gt":10, "$lt":20}进行查询,只会匹配“X”键的值大于等于10并且小于等于20的文档。但是假如某个文档的x字段是一个数组,如果x的键的某一个元素与查询的任何一条语句相匹配,那么这个文档就会返回。比如例子如下:
现在希望找到age的值在于10和20之间的所有文档:
从上图可以看出:
1. 可以使用‘$elemMatch’要求Mongodb同事使用查询条件中两个语句与一个数组元素进行比较,并且该标签不会匹配非数组元素。
2. 使用min和max时候一定要该字段添加索引,要不添加就会报错。
推荐阅读
-
Yii基于数组和对象的Model查询技巧实例详解
-
MongoDB .Net Driver(C#驱动) - 内嵌数组/嵌入文档的操作(增加、删除、修改、查询(Linq 分页))
-
MongoDB模糊查询操作案例详解(类关系型数据库的 like 和 not like)
-
MongoDB下根据数组大小进行查询的方法
-
基于Geomesa服务查询轨迹数据无法根据空间和时间范围进行查询的问题解决办法
-
MongoDB的基础查询和索引操作方法总结
-
MongoDB的模糊查询操作(类关系型数据库的 like 和 not like)
-
详解MongoDB的条件查询和排序
-
MongoDB如何对数组中的元素进行查询详解
-
Java操作mongodb的模糊查询和精确查询