我有一个包含以下文件的集合:
{
map:{
key1:value1,
key2:value2,
....
}
}
我只想根据映射值过滤文档,而不考虑键,比如 map.* 等于某个值。有可能吗?
使用的MongoDB版本是3.4
最佳答案
您可以使用 $objectToArray
尝试以下聚合和 $arrayToObject
聚合算子
db.collection.aggregate([
{ "$project": { "map": { "$objectToArray": "$map" }}},
{ "$match": { "map.v": "value1" }},
{ "$project": { "map": { "$arrayToObject": "$map" }}}
])
关于mongodb - 在 mongodb 中使用未知键查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52475411/