在mongodb中查询数组[重复]

Posted

技术标签:

【中文标题】在mongodb中查询数组[重复]【英文标题】:Querying array in mongodb [duplicate] 【发布时间】:2019-03-16 05:50:59 【问题描述】:

请在以下情况下帮助我。 以下是样本数据单文档。 在所有文档中,我需要单个文档,其数组值符合预期(状态为活动、非活动状态等)。


"_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】:

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

但总之你可以这样做:

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

希望对你有帮助

【讨论】:

以上是关于在mongodb中查询数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章

mongodb:查询以检查数组中的项目是不是包含特定字符串[重复]

Mongodb数组查询:查找数组中包含局外人的记录[重复]

MongoDb:删除另一个数组中的数组索引[重复]

带有 elemMatch 的 MongoDB 查询,用于从对象内部匹配嵌套数组数据 [重复]

Mongodb聚合数组大小大于匹配[重复]

Mongodb聚合数组大小大于匹配[重复]