假设我们的收藏夹中包含以下文档:
{
name: 'Product1',
prices: [
{ shop: 'shop1', price: 1 },
{ shop: 'shop2', price: 2 }
]
},
{
name: 'Product2',
prices: [
{ shop: 'shop3', price: 5 },
{ shop: 'shop4', price: 3 }
]
}
我需要使用mongodb从这些文档中获得以下结果:
{
name: 'Product1',
bestPrice: { shop: 'shop1', price: 1 }
},
{
name: 'Product2',
bestPrice: { shop: 'shop4', price: 3 }
}
换句话说,我想获得按价格字段的值排序的最低价格的文档。我如何使用mongodb聚合框架来做到这一点?
答案 0 :(得分:0)
您可以尝试以下汇总
db.collection.aggregate([
{ "$project": {
"name": 1,
"bestPrice": {
"$arrayElemAt": [
"$prices",
{
"$indexOfArray": [
"$prices.price",
{ "$min": "$prices.price" }
]
}
]
}
}}
])