【发布时间】:2018-08-16 15:31:39
【问题描述】:
我使用以下查询:
Collection
.aggregate([
{
$project : { follow_count: {$size: { "$ifNull": [ "$follow_users", [] ] } } }
},
{ $lookup: {from: 'models', localField: '_id', foreignField: '_id', as: 'model'}},
])
获取这种 JSON:
[
{
"_id": "1234565434567",
"follow_count": 3,
"model": [
{
"_id": "1234565434567",
"make": "Make1",
"name": "Model1",
"price": 15200,
}
]
},
{
"_id": "123456789",
"follow_count": 2,
"model": [
{
"_id": "123456789",
"make": "Make2",
"name": "Model2",
"price": 12000,
}
]
}
]
有没有办法不将 $lookup 结果推送到数组中以获得这样的 JSON? 我更喜欢在查询后不使用循环,所以我正在寻找一种优化的方式。
[
{
"_id": "1234565434567",
"follow_count": 3,
"make": "Make1",
"name": "Model1",
"price": 15200,
},
{
"_id": "123456789",
"follow_count": 2,
"make": "Make2",
"name": "Model2",
"price": 12000,
}
]
【问题讨论】:
-
尝试使用 $unwind 或 $project
标签: arrays mongodb mongoose aggregate