$ elemMatch运算子在mongodb中无法正常运作

时间:2018-06-21 06:25:47

标签: arrays mongodb

我有以下收藏

>db.prueba.find({})
{ "_id" : "A", "requi" : null }
{ "_id" : "D", "requi" : [ "A", "B" ] }
{ "_id" : "E", "requi" : [ "B" ] }
{ "_id" : "B", "requi" : null }
{ "_id" : "C", "requi" : [ "A" ] }

我需要requi field的每个元素都在以下数组中。在这种情况下,数组只有一个元素

['A']

当我使用运算符$elemMatch时,返回以下内容

db.prueba.find({requi:{$elemMatch:{$in:['A']}}})
{ "_id" : "D", "requi" : [ "A", "B" ] }
{ "_id" : "C", "requi" : [ "A" ] }

查询必须仅返回文档

{ "_id" : "C", "requi" : [ "A" ] }

请帮助我

1 个答案:

答案 0 :(得分:4)

使用$eq运算符在数组中查找完全匹配

db.collection.find({ "requi": { "$eq": [ "A" ] } })

输出

[
  {
    "_id": "C",
    "requi": [
      "A"
    ]
  }
]

检查here