[英]MongoDB findOneAndUpdate for value less than other value
如果一個值小於另一個值,我似乎無法弄清楚將值更新(遞增)1 的正確語法。 以下是更多細節:
數據結構
{
"currentTask": 0,
"maximumTask":10
}
我想做的事
currentTask < maximumTask
currentTask
值增加 1我試過的
let solver = await solvers.findOneAndUpdate({"currentTask":{"$lt": "$maximumTask"}},{"$inc":{"currentTask":1}});
我覺得我很接近但顯然是 MongoDB 的新手! 任何幫助將非常感激 :)
您使用的語法用於將文檔上的值與輸入值(未保存在文檔中)進行比較。 如果要比較文檔中的兩個值,請使用$expr
:
db.collection.findOneAndUpdate({
$expr: {
$lt: [
"$currentTask",
"$maximumTask"
]
}
},
{
$inc: {
currentTask: 1
}
})
此答案將返回更新前的文檔。 要在更新后獲取文檔,請使用如下選項:
db.collection.findOneAndUpdate(
{$expr: {$lt: ["$currentTask", "$maximumTask"]}},
{$inc: {currentTask: 1}},
{returnNewDocument: 1})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.