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", ] } })