Arrays MongoDB返回,其中数组至少包含查询数组中的一项
我有一个集合,其中的记录有一个Arrays MongoDB返回,其中数组至少包含查询数组中的一项,arrays,mongodb,Arrays,Mongodb,我有一个集合,其中的记录有一个标记字段,如下所示: [ { "title": "foo", "tags": [ "fizz", "buzz", "quz" ] } ] 我希望能够根据数组搜索这些记录,这样我就可以搜索至少一个与传入数组值匹配的记录,因此使用[“fizz”]进行查询将匹配,或者[“fizz”,“quz”]将匹配,但[“bar”]将不匹配 我尝试了$elemMatch,但似乎只有当查询数组中的所有元素与记录中的标记匹配时,才会返回记录。查询操作符应该完成您需
标记
字段,如下所示:
[
{
"title": "foo",
"tags": [ "fizz", "buzz", "quz" ]
}
]
我希望能够根据数组搜索这些记录,这样我就可以搜索至少一个与传入数组值匹配的记录,因此使用[“fizz”]
进行查询将匹配,或者[“fizz”,“quz”]
将匹配,但[“bar”]
将不匹配
我尝试了$elemMatch
,但似乎只有当查询数组中的所有元素与记录中的标记匹配时,才会返回记录。查询操作符应该完成您需要的操作:
为了快速演示,我创建了一个集合,其中包含几个阵列变体:
[
{ arr: [ "a", "b", "c" ] },
{ arr: [ "b", "c", "d" ] },
{ arr: [ "c", "d", "e" ] },
{ arr: [ "d", "e", "f" ] }
]
查询包含“a”或“b”的文档将返回前2个:
db.collection.find({ arr: { $in: [ "a", "b", ] } })