【问题标题】:Monogdb $expr with multiple level of nestingMongodb $expr 具有多级嵌套
【发布时间】:2020-05-19 07:36:27
【问题描述】:

我不知道这是否可能,$expr 的文档似乎也没有提到它,但我正在尝试比较两个字段,其中一个是哈希类型,另一个是哈希数组。我正在尝试查询哈希字段等于哈希数组中第一个哈希元素的记录。这是我的收藏布局:

{
  _id: "Some ID",
  answers: [ { staff_id: 1, answer: { dob: true, type: true } } ,
  qa_answer: { dob: true, type: true }
}

我试过的查询表达式是:

collection.find({ '$expr': { '$eq': ['$answers.0.answer', '$qa_answer'] } })

但这似乎不起作用。我认为这是嵌套点符号的问题,但我尝试了以下方法并且它有效:

collection.find({ 'answers.0.answer': { "dob": true, "type": true } })

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案1】:

    好吧,我终于让它工作了,事实证明点符号是问题所在。这是我最终得到的查询:

    collection.find({ 
      '$expr': { 
        '$eq': [ 
          { '$arrayElemAt': [ '$answers.answer', 0 ] }, 
          '$qa_answer'
        ] 
      } 
    })
    

    【讨论】:

      猜你喜欢
      • 2016-07-01
      • 2017-12-15
      • 1970-01-01
      • 2018-12-22
      • 1970-01-01
      • 2019-03-20
      • 2016-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多