给出以下数据并且我正在使用带有驱动程序 3.10.1 的 java "room_price" : "500", "overall_price" : 10000, "total_paid" : 400, "paid" : [ { "price" : "200", "Date" : ISODate("2019-10-06T00:00:00Z") }, { "price" : "200", "Date" : ISODate("2019-10-06T00:00:00Z") } ],仅当增量操作后total_paid低于overall_paid金额时,如何将新添加的价格添加到totalpaid中。注意到我已经尝试过 max() 和 inc() 但无法达到任何结果
1 回答
aluckdog
TA贡献1847条经验 获得超7个赞
以下查询可以获得预期的输出:
db.collection.update(
{
$expr:{
$lt:[
{
$sum:["$total_paid",345]
},
"$overall_price"
]
}
},
{
$addToSet:{
"paid":{
"price":345,
"Date": new Date()
}
},
$inc:{
"total_paid":345
}
}
)
注意:这里的345是我们需要添加的新价格
添加回答
举报
0/150
提交
取消