gpt4 book ai didi

mongodb - 如何显示最大编号的客户名称MongoDB 中的订单?

转载 作者:可可西里 更新时间:2023-11-01 10:45:33 26 4
gpt4 key购买 nike

如何显示最大编号的客户名称MongoDB 中的订单?订单是一个嵌套的子文档。

{

"_id" : ObjectId("5bd729c463b37537e42174a3"),
"name" : "Vedang",
"no" : "123",
"city" : "Pune",
"orders" : [
{
"order" : "1",
"type" : "clothes",
"total" : "1000"
},
{
"order" : "2",
"type" : "clothes",
"total" : "2000"
},
{
"order" : "3",
"type" : "shoes",
"total" : "3000"
}
]

最佳答案

您可以使用聚合框架。

使用 $size 获取订单数组长度,然后使用 $sort desc 和 $facet 输出最大订单大小和所有带有计数和名称的文件。

$project$filter 输出所有数量与最大订单数量匹配的文档。

$unwind$project 输出最高阶的名称。

有点像

db.colname.aggregate([
{"$addFields":{"ordersize":{"$size":"$orders"}}},
{"$sort":{"ordersize":-1}},
{"$facet":{"maxordersize":[{"$limit":1},{"$project":{"ordersize":1}}], "docs":[{"$project":{"ordersize":1, "name":"$name"}}]}},
{"$project":{"docs":{"$filter":{"input":"$docs","cond":{"$eq":["$$this.ordersize",{"$arrayElemAt":["$maxordersize.ordersize", 0]]}}}}}},
{"$unwind":"$docs"},
{"$project":{"name":"$docs.name"}}
])

关于mongodb - 如何显示最大编号的客户名称MongoDB 中的订单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53050813/

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