代码之家  ›  专栏  ›  技术社区  ›  deltaforce

如何查询mongodb根据值嵌套参数取结果?

  •  0
  • deltaforce  · 技术社区  · 5 年前

    我是第一次使用MongoDB。

    {
       "name":[
          {
             "value":"abc",
             "created_on":"2020-02-06 06:11:21.340611+00:00"
          },
          {
             "value":"xyz",
             "created_on":"2020-02-07 06:11:21.340611+00:00"
          }
       ],
       "score":[
          {
             "value":12,
             "created_on":"2020-02-06 06:11:21.340611+00:00"
          },
          {
             "value":13,
             "created_on":"2020-02-07 06:11:21.340611+00:00"
          }
       ]
    }
    

    如何形成一个查询,以便获得给定文档中每个字段的最新更新值。我经历了 Query Embedded Documents ,但我不知道是怎么回事。

    {
        "name": "xyz",
        "score": "13"
    }
    
    0 回复  |  直到 4 年前
        1
  •  1
  •   whoami - fakeFaceTrueSoul    5 年前

    数组/总是推送最新值 名称 分数

    db.collection.aggregate([
        { $addFields: { name: { $arrayElemAt: ['$name', -1] }, score: { $arrayElemAt: ['$score', -1] } } },
        { $addFields: { name: '$name.value', score: '$score.value' } }])
    

    测试: MongoDB-Playground