【发布时间】:2021-06-20 19:54:11
【问题描述】:
我想计算利润,我需要获取 Item JsonArray,它是其他嵌套 JsonArray Order 的一部分
要获取订单数组对象,我们可以使用这个查询
var mapProfit=function(){for(var i in this.order)emit(this.order[i],1)}
var redProfit=function(k,v){return Array.sum(v)}
db.OnlineGrocery.mapReduce(mapProfit,redProfit,{out:"Result"}).find()
如何使用此查询来获取项目
{
"_id" : ObjectId("605ac4dcf77f914c2aab81b0"),
"customer_id" : NumberInt(1),
"customer_firstName" : "Lannie",
"customer_lastName" : "Chazerand",
"customer_email" : "lchazerand0@usnews.com",
"customer_phoneNumber" : "3862602788",
"address" : [
{
"street" : "00523 Helena Plaza",
"city" : "Cincinnati",
"province" : "Ohio"
}
],
"order" : [
{
"order_id" : "98-037-3943",
"order_date" : "6/22/2020",
"item" : [
{
"item_id" : NumberInt(1),
"item_name" : "Appetizer - Mango Chevre",
"item_desc" : "Nondisp fx of pisiform, unsp wrist, init for clos fx",
"item_qty" : NumberInt(5),
"item_actual_price" : "$2.78",
"item_selling_price" : "$8.23"
},
{
"item_id" : NumberInt(2),
"item_name" : "Pork - Bacon,back Peameal",
"item_desc" : "Other cervical disc disorders at C6-C7 level",
"item_qty" : NumberInt(2),
"item_actual_price" : "$1.53",
"item_selling_price" : "$6.71"
}
]
}]
}
【问题讨论】:
-
你到底需要什么
-
你的意思是总结所有
item_selling_price? -
到目前为止你尝试了什么?
-
要获取订单数组对象,我们可以使用这个查询 var mapProfit=function(){for(var i in this.order)emit(this.order[i],1)} var redProfit=function (k,v){return Array.sum(v)} db.OnlineGrocery.mapReduce(mapProfit,redProfit,{out:"Result"}).find() 如何使用这个查询来获取项目
标签: javascript json mongodb aggregate-functions nested-query