【发布时间】:2021-11-30 10:38:59
【问题描述】:
我需要更新特定文档(_id)并在 DB 中将特定字段降低 1。
查询如下所示:
mycollection.update_one({"_id": {"$eq": the_id}}, {"$inc": {"fieldToLower": -1}})
但是我需要fieldToLower 永远不会是负数,如果它已经是 0,那么它的最小值等于 0,而不是等于 -1。
我想知道如何在这个查询中做到这一点?
【问题讨论】:
我需要更新特定文档(_id)并在 DB 中将特定字段降低 1。
查询如下所示:
mycollection.update_one({"_id": {"$eq": the_id}}, {"$inc": {"fieldToLower": -1}})
但是我需要fieldToLower 永远不会是负数,如果它已经是 0,那么它的最小值等于 0,而不是等于 -1。
我想知道如何在这个查询中做到这一点?
【问题讨论】:
作为一种解决方法,您可以只更新 fieldToLower 大于 0 的值,如下所示:
mycollection.update_one({
"_id": the_id,
"fieldToLower": {
"$gte": 1
}
},
{
"$inc": {
"fieldToLower": -1
}
})
例如here
【讨论】: