如何在mongodb中查询嵌套对象以返回单个json对象?

时间:2019-03-11 19:03:18

标签: javascript json mongodb

正在使用的数据是:

     {  
       '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来自用户输入,但是,这将返回整个数据集。如何获得返回单个玩家的奖励?

1 个答案:

答案 0 :(得分:0)

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

但是,如果愿意,可以使用汇总查询而不是查找,然后使用$indexOfArray根据表达式在数组中查找元素的索引,然后仅使用{{3} }