在mongodb中查询数组

时间:2018-10-11 08:02:23

标签: mongodb

在以下情况下,请帮助我。 以下是示例数据单个文档。 在所有文档中,我需要一个文档,并具有预期的数组值(状态为活动,状态为非活动等)。

{
"_id":.......
"type":"dept",
"values":[
  {
    "name":"dept 1",
    "status":"active"
  },
  {
    "name":"dept 2",
    "status":"active"
  },
  {
    "name":"dept 3",
    "status":"deleted"
  },
  {
    "name":"dept 4",
    "status":"active"
  },
  {
    "name":"dept 5",
    "status":"active"
  },
  {
    "name":"dept 6",
    "status":"disabled"
  },
 ]
}

预期结果

1)使所有Active(在数组内部)

{
"_id":.......
"type":"dept",
"values":[
  {
    "name":"dept 1",
    "status":"active"
  },
  {
    "name":"dept 2",
    "status":"active"
  }
  {
    "name":"dept 4",
    "status":"active"
  },
  {
    "name":"dept 5",
    "status":"active"
  }
 ]
}

2)获得非活动状态(在数组内部)

 {
  "_id":.......
  "type":"dept",
  "values":[

   {
     "name":"dept 3",
     "status":"deleted"
   },
   {
     "name":"dept 6",
     "status":"disabled"
    },
  ]
 }

请帮助我进行查询以获得高于预期的结果。 我想用上面的示例中期望的数组值检索文档。

1 个答案:

答案 0 :(得分:1)

您的问题在这里有答案:How to search in array of object in mongodb

但是总而言之,您可以这样做:

db.collection.find({values: {$elemMatch: {status: 'active'}}})

希望对您有帮助

相关问题