mongodb中具有未知密钥的查询
我收集了以下文件:mongodb中具有未知密钥的查询,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我收集了以下文件: { map:{ key1:value1, key2:value2, .... } } 我只想根据map值过滤文档,而不考虑键,比如map.*等于某个值。有可能吗 使用的MongoDB版本是3.4您可以在下面使用和聚合运算符进行聚合 db.collection.aggregate([ { "$project": { "map": { "$objectToArray": "$map" }}}, { "$match":
{
map:{
key1:value1,
key2:value2,
....
}
}
我只想根据map值过滤文档,而不考虑键,比如map.*等于某个值。有可能吗
使用的MongoDB版本是3.4您可以在下面使用和聚合运算符进行聚合
db.collection.aggregate([
{ "$project": { "map": { "$objectToArray": "$map" }}},
{ "$match": { "map.v": "value1" }},
{ "$project": { "map": { "$arrayToObject": "$map" }}}
])
您可以使用
$arrayToObject
和objectToArray
聚合。类似于这样的db.collection.aggregate([{$project:{$map:{$objectToArray:“$map”}}},{$match:{$map.v:“value1”},{$project:{$map:{$arrayToObject:“$map”}}])