我遇到了这个mongodb查询结果的问题。我尝试了不同的方法来解决这个问题,但我总是得到同样的错误。我怎么能这样做?
Recommend.aggregate(
[
// grouping pipeline
{ "$group": {
"_id": '$venue',
"recommendCount": { "$sum": 1 }
}
},
// sorting pipeline
{ "$sort": { "recommendCount": -1 } },
// optionally limit results
{ "$limit": 20 }
],
function(err,result) {
}
);
现在我的结果是:
\"_id\": {
\"id\": \"4b510337f964a520893d27e3\",
\"name\": \"BotecoSaoBento\",
\"contact\": \"55193259-1674\",
\"lat\": \"-22.899043080634886\",
\"lng\": \"-47.050360218498184\",
\"city\": \"Campinas\"
},
\"recommendCount\": 3
}
但我需要这种格式:
{
\"id\": \"4b510337f964a520893d27e3\",
\"name\": \"BotecoSaoBento\",
\"contact\": \"55193259-1674\",
\"lat\": \"-22.899043080634886\",
\"lng\": \"-47.050360218498184\",
\"city\": \"Campinas\",
\"recommendCount\": 3
}
我不知道是否需要更改我的$ group或在此mongodb查询中插入新的$ project。
架构是:
var recommendSchema = mongoose.Schema({
facebookId: String,
venue: {
id: String,
name: String,
description: String,
contact: String,
lat: String,
lng: String,
city: String
},
insertDate: Date
})
答案 0 :(得分:2)
据我所知,你需要添加一个$ project:
{$project:
{
_id: false,
id: "$_id.id",
name: "$_id.name",
city: "$_id.city",
contact: "$_id.contact",
lat: "$_id.lat",
lng: "$_id.lng",
recommendCount: true
}
}