gpt4 book ai didi

MongoDB 组以获取字段的最小值及其各自的数据

转载 作者:行者123 更新时间:2023-12-04 10:07:53 26 4
gpt4 key购买 nike

我有一系列这样的产品:

[
{
productName: "productB",
productImage: "http://some.url/product_B.jpg",
productCategoryId: 34,
productPrice: 10
},
{
productName: "productA",
productImage: "http://some.url/product_A.jpg",
productCategoryId: 34,
productPrice: 50
}
]

到目前为止,我所拥有的是以下内容:
db.local.aggregate(
[
{
"$match":{
"productCategoryId":34
}
},
{
"$facet":{
"byCategory":[
{
"$group":{
"_id":"productCategory",
"minprice":{
"$min":"$productPrice"
}
}
}
]
}
}
]
)

我需要按单个字段(类别)进行聚合/分组并获得每个类别的最低价格,但我还想返回具有每个类别最低价格的文档的产品名称和图像(其他 2 个字段)。任何人都可以指出一些方向或例子吗?覆盖了 groupBy 和 min ,仅提取额外信息的部分。
更新了我已经拥有的架构和聚合,@PulkitAgg1010
我希望通过每个类别的 minPrice 获取记录的 productImage 和 productPrice 。

最佳答案

您可以使用以下聚合

db.collection.aggregate([
{ "$group": {
"_id": "$productCategory",
"doc": {
"$min": {
"minprice": "$productPrice",
"productName": "$productName",
"productCategory": "$productCategory"
}
}
}},
{ "$replaceRoot": { "newRoot": "$doc" }}
])

$min 始终采用对象内部传递的第一个表达式的最小值。这就是值(value)。

关于MongoDB 组以获取字段的最小值及其各自的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61479285/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com