12

考虑以下文档:

{
  "_id" : "ID_01",
  "code" : ["001", "002", "003"],
  "Others" : "544554"
}

我浏览了 elemmatch-queryelemmatch-projection的 MongoDB 文档,但无法弄清楚如何将其用于上述文档。

谁能告诉我如何使用$elemMatch字段代码?

4

2 回答 2

11

您将希望使用$in运算符,而不是$elemMatch在这种情况下,因为$in它可用于在特定字段内搜索一个(或多个值)。$in 需要一个值列表作为数组传递。此外,对于您的情况,它会找到单个值,或者通过在值数组中搜索。返回整个匹配文档。

例如,您可以像这样使用它:

db.mycodes.find( { code: { $in: ["001"] } } )

这可以简化为:

db.mycodes.find({ code: "001" })

由于 MongoDB 将在数组中查找单个匹配项,如上面 ( "001") 。

或者,如果您想搜索"001"or "002"

db.mycodes.find( { code: { $in: ["001", "002"] } } )

$in 文档

于 2013-04-22T14:17:23.483 回答
5

如果您只是想将所有文档与包含给定值的数组匹配,则只需在对该数组的引用上指定值,例如

db.mycodes.find( { code: '001' } )

因此,这将返回您包含'001'在其code数组中的所有文档

于 2014-07-03T19:02:12.543 回答