[英]MongoDB - Update a just created element in an array (aggregation)
我有这些模式:
Item = {
name: String,
price: Number;
}
Sales = {
items: [Item],
totalSaleValue: Number,
}
Clients = {
clientName: String,
sales: [Sales]
}
每次插入或更新销售时,都应根据items
字段中每个项目的价格字段计算(如果是更新,则重新计算)其totalSaleValue
字段。
因此,在发布新销售时,我是这样开始的:
db.collection.findOneAndUpate(
{ _id: <the _id for the client> },
[
{ $set: { sales: { $concatArray: [ '$sales', [ /*a Sales object*/ ] ] } } }
]
)
这将有效地将新的销售插入到sales
数组中,但我不知道如何访问刚刚创建的销售以设置其totalSaleValue
字段,我正在考虑这些方面的事情:
sales
领域。totalSaleValue
字段设置为该次销售中所有商品价格的总和。我怎样才能做到这一点,或者有更好的方法吗? 我需要做的是一个查询
使用带有$sum
的第二个$set
阶段来添加价格。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.