【问题标题】:mongo DB query, how to select a specifi elemetmongoDB查询,如何选择特定元素
【发布时间】:2022-01-02 14:20:54
【问题描述】:

我有一个问题要问你,

我的集合“q-1”中有一些文档,我想提取表“数据”中的一个元素。

为此,我想检索 id_propositions 字段为 19 的那个

你有什么想法吗?

提前谢谢

戈蒂埃

【问题讨论】:

    标签: arrays mongodb mongodb-query


    【解决方案1】:

    实现此目的的一种方法是使用$unwind,它将数组展平。

    考虑以下 (you can also check out a live demo here):

    数据库

    [
      {
        _id: 1,
        data: [
          {
            id_propositions: 10,
            desc: "a"
          },
          {
            id_propositions: 19,
            desc: "b"
          },
          {
            id_propositions: 19,
            desc: "c"
          },
          {
            id_propositions: 10,
            desc: "d"
          }
        ]
      },
      {
        _id: 2,
        data: [
          {
            id_propositions: 20,
            desc: "z"
          },
          {
            id_propositions: 19,
            desc: "x"
          },
          {
            id_propositions: 19,
            desc: "y"
          },
          {
            id_propositions: 20,
            desc: "w"
          }
        ]
      }
    ]
    

    查询

    db.collection.aggregate([
      {
        $unwind: "$data"
      },
      {
        $match: {
          "data.id_propositions": 19
        }
      }
    ])
    

    结果

    [
      {
        "_id": 1,
        "data": {
          "desc": "b",
          "id_propositions": 19
        }
      },
      {
        "_id": 1,
        "data": {
          "desc": "c",
          "id_propositions": 19
        }
      },
      {
        "_id": 2,
        "data": {
          "desc": "x",
          "id_propositions": 19
        }
      },
      {
        "_id": 2,
        "data": {
          "desc": "y",
          "id_propositions": 19
        }
      }
    ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多