mongodb - 在 mongodb 中使用未知键查询

标签 mongodb mongodb-query aggregation-framework

我有一个包含以下文件的集合:

{   
   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/

相关文章:

java - 我们如何通过 java 驱动程序查询嵌入式文档?

Mongodb聚合5分钟

mongodb - 如何在 MongoDB C# 驱动程序版本 2 中使用 $ 位置运算符

mongodb - 在mongodb中将字符串转换为日期

javascript - 从用户时间轴获取转发计数

node.js - forEach执行后如何关闭 Mongoose 连接?

mongodb - $geoNear - mongodb 聚合中的 $maxDistance 不起作用

javascript - 计算连续字段出现的最大数量

mongodb - 使用数据在最后一个序列中首次出现

spring - OAUTH2事务管理器grails mongodb