給出以下數(shù)據(jù)并且我正在使用帶有驅(qū)動程序 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中。注意到我已經(jīng)嘗試過 max() 和 inc() 但無法達到任何結(jié)果
1 回答

aluckdog
TA貢獻1847條經(jīng)驗 獲得超7個贊
以下查詢可以獲得預(yù)期的輸出:
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
提交
取消