【问题标题】:How do you query a nested object in mongodb to return a single json object?如何在 mongodb 中查询嵌套对象以返回单个 json 对象?
【发布时间】:2019-03-11 19:03:18
【问题描述】:

正在使用的数据是:

     {  
       'name':'Arsenal FC',
       'squad':[  
          {  
             'id':'3174',
             'name':'Bernd Leno',
             'position':'Goalkeeper',
             'dateOfBirth':'1992-03-04',
             'nationality':'Germany',
             'role':'PLAYER'
          },
          {  
             'id':'7778',
             'name':'Petr Čech',
             'position':'Goalkeeper',
             'dateOfBirth':'1982-05-20',
             'nationality':'Czech Republic',
             'role':'PLAYER'
          },
          {  
             'id':'7780',
             'name':'Deyan Iliev',
             'position':'Goalkeeper',
             'dateOfBirth':'1995-02-25',
             'nationality':'FYR Macedonia',
             'role':'PLAYER'
          }
]
}

我正在尝试返回如下所示的单个玩家对象:

{  
             'id':'7778',
             'name':'Petr Čech',
             'position':'Goalkeeper',
             'dateOfBirth':'1982-05-20',
             'nationality':'Czech Republic',
             'role':'PLAYER'
          }

我正在使用 mongodb,正在使用的查询是 {"squad.id": id},其中 id 来自用户输入,但是这会返回整个数据集。我如何让它返回单个玩家?

【问题讨论】:

    标签: javascript json mongodb


    【解决方案1】:

    MongoDB 确实允许查询数组中的嵌套对象属性,但不能仅投影数组的特定元素。

    但是,如果您愿意,您可以使用可以聚合查询而不是查找,并使用 $indexOfArray 根据表达式查找数组中元素的索引,然后使用 $arrayElementAt 进一步仅投影该项目

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      相关资源
      最近更新 更多