给定以下数据,并且我正在将java与驱动程序3.10.1一起使用
"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低于total_paid量时,才如何将新添加的价格添加到totalpay中。注意到我已经尝试过max()和inc(),但无法达到任何结果
最佳答案
以下查询可以为我们提供预期的输出:
db.collection.update(
{
$expr:{
$lt:[
{
$sum:["$total_paid",345]
},
"$overall_price"
]
}
},
{
$addToSet:{
"paid":{
"price":345,
"Date": new Date()
}
},
$inc:{
"total_paid":345
}
}
)
注意:这里345是我们需要添加的新价格
关于java - 更新mongodb中的操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58259414/