在mongodb中使用未知键进行查询

时间:2018-09-24 08:35:09

标签: mongodb aggregation-framework

我有一个收藏,其中包含以下文件:

{   
   map:{
     key1:value1,
     key2:value2, 
     ....
    }
}

,并且我只想根据地图值过滤文档,而无论键如何,诸如map。*之类的值都等于某个值。可以这样做吗?

使用的MongoDB版本是3.4

1 个答案:

答案 0 :(得分:1)

您可以使用$objectToArray$arrayToObject聚合运算符尝试以下聚合

db.collection.aggregate([
  { "$project": { "map": { "$objectToArray": "$map" }}},
  { "$match": { "map.v": "value1" }},
  { "$project": { "map": { "$arrayToObject": "$map" }}}
])