mongodb 基本数组查询
本文总结了如何在 mongoDB 中对基本数组(数组中包含基本类型的元素)进行查询。
集合数据
假设有如下文档,集合名为 inventory
。
1 | db.collection('inventory').insertMany([ |
数组的精确匹配
使用查询文档 { <field>: <value> }
来进行集合的精确匹配。<value>
是一个数组或者操作。
1 | // 仅当 tags 为 ['red', 'blank'] 时才返回值 |
匹配数组中的某个元素
如果要查询数组中至少有一个元素匹配给定值时,可以使用
{ <field>: <value> }
样式的查询文档来查询。<value>
是一个值。
1 | // 返回 tags 中包含 'red' 的文档 |
value 也可以是查询过滤文档 (query filter document):
1 | db.collection('inventory').find({ |
这种情况下的查询,可以将数组直接看成一个值就可以。
对数组中的某个元素进行多条件匹配
数组中多个元素共同满足一组条件
下列查询中,当满足以下情况之一时,会有返回值:
dim_cm
中一个元素满足$lt: 15
,另一个元素满足$gt: 20
dim_cm
中一个元素同时满足条件
1 | db.collection('inventory').find({ |
数组中任一个元素同时满足一组条件
1 | db.collection('inventory').find({ |
匹配数组中特定序号的元素
可以通过 .
点来匹配数组下标,下标从 0 开始。
1 | // 查询第二个元素是否满足条件 |
匹配特定长度的数组
1 | // 返回 tags 中有 3 个元素的文档 |