2017-05-15 23 views
0

我对MongoDB非常陌生,我试图查询数据库并获得这样的对象作为响应。

{ 
    activity: 'Aerial Yoga', 
    participants_12: 10, 
    participants_13_15: 10, 
    participants_16_18: 10, 
    participants_19: 10, 
} 

我会放置一个图像,而不是完整的JSON,所以我可以解释如何获取数据: enter image description here

我可以过滤,但我仍然不知道如何格式化对象数据库回到我身边。我目前使用此查询:

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,} } 
]) 

我该如何达到我想要的结果?我应该使用$项目吗?我正在使用v3.2.8的mongodb

回答

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', 
    ... 
    } } 
]) 

希望有所帮助。

+0

谢谢你的回答!数据库不会抱怨查询,但它看起来像是在一个无限循环中,因为它永远不会返回结果,它将永远加载。我想这是由于我存储的文档中的某些内容。 –

+0

您使用的是什么接口?它是MongoDB shell吗? – richsilv

+0

我正在使用Studio 3T。我在Robomongo尝试过,它返回一个空对象,在mongo shell中也是如此 –

相关问题