node.js - 如何动态查询文档中的对象

标签 node.js mongodb object

我在数据库中有以下结构的文档

{
    "_id" : ObjectId("5cfcd787cbac8d69e6db1a8"),
    "__v" : 0,
    "summary" : {
        "Boundry" : false,
        "Six" : false,
        "Wicket" : false,
    }
}

我想根据摘要查找数据,即 Boundry、Six 和 Wicket

我可以使用“点”运算符获取我的数据,即

db.getCollection('colection_name').find({"summary.Boundry": true})

但我希望它是动态的,以便我可以通过多个摘要键查找数据

动态意义上的边界通过“summary.Boundry”查找数据:true,对于六我需要通过“summary.Six”查找数据:true我想制作“summary”+“.Six”类型的字符串,所以它可以动态搜索这可能吗?

我已经尝试过ElemMatch查询但它似乎只在数组中工作

提前致谢

最佳答案

您可能需要详细说明“动态”的含义,但是,如果您只想同时匹配一个或多个字段,您可以只包含这些:

db.getcollection('collection_name')
.find(
  { 'summary.Boundry': true }, 
  { 'summary.Six': true }
)

MongoDB 默认应用$and您的条件的逻辑运算符。 如果您想要非此即彼的匹配,您可以使用 $or .

关于node.js - 如何动态查询文档中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56522732/

相关文章:

javascript - NodeJS,不关闭mysql连接

angularjs - Angular 不发送对象中的对象

javascript - View | vue-moment.js 的问题

java - Morphia:使用 Morphia 过滤 ArrayList 中的元素

mongodb - 如何使用GoLang在MongoDB中执行插入操作?

javascript - 如何将新对象添加到具有索引号的对象

node.js - 非索引字段上的索引重复键

mongodb - Robomongo & Meteor mongodb 本地主机连接失败

c++ - 主对象与itk 4.8工具包的区别

java - 好还是坏——使用构造函数从远程 web 服务初始化模型