代码之家  ›  专栏  ›  技术社区  ›  Raz Buchnik

MongoDB查找对象数组中的属性是否等于另一个字段

  •  0
  • Raz Buchnik  · 技术社区  · 4 年前

    这是文档模型:

    {
      foo: {
        bar: 1
      },
      some_array: [
        {
          xyz: 1
        },
        {
          xyz: 2
        }
      ]
    },
    
    {
      foo: {
        bar: 2
      },
      some_array: [
        {
          xyz: 123
        },
        {
          xyz: 321
        }
      ]
    }
    

    我想找到的文件 'foo.bar' 等于 'some_array.xyz'

    例如,只应提取第一个文档。

    怎么做?

    0 回复  |  直到 4 年前
        1
  •  1
  •   Montgomery Watts    4 年前

    您可以使用 $expr 运算符来比较同一文档中的字段。

    db.collection.find({
      $expr: {
        $in: [
          "$foo.bar",
          "$some_array.xyz"
        ]
      }
    })
    

    Working MongoPlayground