【问题标题】:How to compare one field with combined fields in mongodb如何将一个字段与mongodb中的组合字段进行比较
【发布时间】:2019-07-16 06:03:31
【问题描述】:

我有这样的收藏

    sample document
    {
        "field1":"one",
        "field2":"two",
        "field3":"three",
        ...some more key values
    }

现在我有字段值,它是字段 1、字段 2 和字段 3 值的组合。即对于上述文件,我有 field = "onetwothree" 一种选择是将该字段分离为 3 个不同的字段,但这是不可能的,因为它的模式不固定 所以我想像这样比较
db.collection.find({"filed1+field2+field3":field}) 但这是不可能的,因此一种解决方案是从集合中查找所有文档并一一比较,但这并不是优化的方法。那么这样做有更好的解决方案吗?

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案1】:

    从 MongoDB v3.6 开始,您可以运行以下查询:

    db.collection.find({
        $expr: {
            $eq: [
                "onetwothree",
                { $concat: [ "$field1", "$field2", "$field3" ] }
            ]
        }
    })
    

    这是$concat$expr 的文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-11
      • 2015-12-21
      • 2019-10-08
      • 1970-01-01
      • 2016-12-25
      • 2022-01-09
      • 2018-11-05
      • 1970-01-01
      相关资源
      最近更新 更多