我是MongoDB的新手,我正在尝试查询数据库并在响应中获取这样的对象。
{
activity: 'Aerial Yoga',
participants_12: 10,
participants_13_15: 10,
participants_16_18: 10,
participants_19: 10,
}
我将放置一个图像而不是完整的json,以便我可以解释如何获取数据:
我可以过滤,但我仍然不知道如何格式化DB返回给我的对象。到目前为止我正在使用此查询:
db.applications.aggregate([
{ $match : {application_number:'SL-O2-2017-05-15-000230', 'sport_activity_list.value.0.properties.sport_activity.value':'Aerial Yoga'}},
{ $project : { _id: 0, "sport_activity_list.value":1,} }
])
如何达到我想要的效果?我应该使用$ project吗?我正在使用mongodb的 v3.2.8
答案 0 :(得分:1)
是的,$aggregate
会为您完成此操作。在$project
步骤中,您可以指定现有字段应包含或不包含在truthy值中,但您也可以included computed fields,这是一个非常简单的示例:
db.applications.aggregate([
{ $match : {application_number:'SL-O2-2017-05-15-000230', 'sport_activity_list.value.0.properties.sport_activity.value':'Aerial Yoga'}},
{ $project : {
_id: 0,
value: '$sport_activity_list.value.0.properties.sport_activity.value',
participants_12: '$sport_activity_list.value.0.properties.participants_12.value',
...
} }
])
希望有所帮助。