我从MongoDB查询得到以下结果。
var temp = db.player_level_data.aggregate([
{$group:{_id:{team_name : "$team_name" ,
team_id : "$team_id" ,
team_code : "$team_code" }
}
}
])
结果如下: -
{ "_id" : { "team_name" : "XYZ", "team_id" : 1, "team_code" : 3 } }
{ "_id" : { "team_name" : "ABC", "team_id" : 19, "team_code" : 35 } }
{ "_id" : { "team_name" : "DEF", "team_id" : 2, "team_code" : 7 } }
{ "_id" : { "team_name" : "IJK", "team_id" : 16, "team_code" : 56 } }
{ "_id" : { "team_name" : "MNO", "team_id" : 15, "team_code" : 110 } }
{ "_id" : { "team_name" : "QRS", "team_id" : 20, "team_code" : 21 } }
{ "_id" : { "team_name" : "TUV", "team_id" : 18, "team_code" : 57 } }
如上所述,结果存储在变量temp
中。如何从变量temp
中访问单个值。
如何使用相应的team_name获取team_code。如何使用变量temp中的team_name XYZ检索team_code 3。
答案 0 :(得分:0)
结果是普通的Javascript Array,不能再多了,你必须循环它。
如果您希望MongoDb只选择您想要的teamName,您可以使用$ match作为下一个管道聚合。
答案 1 :(得分:0)
尝试以下内容: -
db.player_level_data.aggregate([
{$group:{_id:{team_name : "$team_name" ,
team_id : "$team_id" ,
team_code : "$team_code" }
}
}
]).toArray(function(err, res)
{
var result = [];
for(var i in res)
{
result.push(temp[i]._id)
}
}) //Will now return array of objects
现在,你可以通过循环结果数组得到你想要的东西。
希望这会对你有所帮助。