mongodb会增加这个数字,但我会减少它?

mongodb会增加这个数字,但我会减少它?,mongodb,Mongodb,在第一次查询中,我将sp_金额增加了1.6。然后我把它减到-1.6,它仍然增加了值!如何纠正这一点 用于递增的查询: db.userwalletcreditlogs.findOneAndUpdate({transaction\u id: “8zioEPVWX7UA7VXSE2U01WCDI”},{$set:{stripe\u transfer\u id :“tr_1bbkxaceourzs8wvkxbqjwut”},$inc:{sp_金额:1.6}) 输出: “sp_金额”:181.6, “条带

在第一次查询中,我将sp_金额增加了1.6。然后我把它减到-1.6,它仍然增加了值!如何纠正这一点

用于递增的查询:

db.userwalletcreditlogs.findOneAndUpdate({transaction\u id: “8zioEPVWX7UA7VXSE2U01WCDI”},{$set:{stripe\u transfer\u id :“tr_1bbkxaceourzs8wvkxbqjwut”},$inc:{sp_金额:1.6})

输出:

“sp_金额”:181.6,
“条带传输id”:“tr_1BBkxaCOEurZs8WVkXBqJwUT”

用于递减的查询:

db.userwalletcreditlogs.findOneAndUpdate({transaction_id:'8ZIoEPVWX7UA7VXSE2U01WCDI},{$set:{stripe_transfer_id:'tr_1BBkxaCOEurZs8WVkXBqJwUT},$inc:{sp_amount 1.6})

输出:

“sp_金额”:183.2,
“条带传输id”:“tr_1BBkxaCOEurZs8WVkXBqJwUT”


findOneAndUpdate
将在应用操作之前返回对象。结果见下文:

> db.test.save({i: 0.0})
WriteResult({ "nInserted" : 1 })
> db.test.find()
{ "_id" : ObjectId("59df362e6ecc1229670714fb"), "i" : 0 }
> db.test.findOneAndUpdate({ "_id" : ObjectId("59df362e6ecc1229670714fb")}, {$inc: {i: 1.6} })
{ "_id" : ObjectId("59df362e6ecc1229670714fb"), "i" : 0 }
> db.test.findOneAndUpdate({ "_id" : ObjectId("59df362e6ecc1229670714fb")}, {$inc: {i: -1.6} })
{ "_id" : ObjectId("59df362e6ecc1229670714fb"), "i" : 1.6 }
> db.test.find()
{ "_id" : ObjectId("59df362e6ecc1229670714fb"), "i" : 0 }
如果要在应用更新后获取对象,需要传入
{returnNewDocument:true}
选项,请参见下面的相同示例:

> db.test.save({i: 0.0})
WriteResult({ "nInserted" : 1 })
> db.test.find()
{ "_id" : ObjectId("59df37406ecc1229670714fd"), "i" : 0 }
> db.test.findOneAndUpdate({ "_id" : ObjectId("59df37406ecc1229670714fd")}, {$inc: {i: 1.6} }, {returnNewDocument:true})
{ "_id" : ObjectId("59df37406ecc1229670714fd"), "i" : 1.6 }
> db.test.findOneAndUpdate({ "_id" : ObjectId("59df37406ecc1229670714fd")}, {$inc: {i: -1.6} }, {returnNewDocument:true})
{ "_id" : ObjectId("59df37406ecc1229670714fd"), "i" : 0 }
> db.test.find()
{ "_id" : ObjectId("59df37406ecc1229670714fd"), "i" : 0 }
>

有关更多信息,请参阅文档-

findOneAndUpdate
将在应用操作之前返回对象。结果见下文:

> db.test.save({i: 0.0})
WriteResult({ "nInserted" : 1 })
> db.test.find()
{ "_id" : ObjectId("59df362e6ecc1229670714fb"), "i" : 0 }
> db.test.findOneAndUpdate({ "_id" : ObjectId("59df362e6ecc1229670714fb")}, {$inc: {i: 1.6} })
{ "_id" : ObjectId("59df362e6ecc1229670714fb"), "i" : 0 }
> db.test.findOneAndUpdate({ "_id" : ObjectId("59df362e6ecc1229670714fb")}, {$inc: {i: -1.6} })
{ "_id" : ObjectId("59df362e6ecc1229670714fb"), "i" : 1.6 }
> db.test.find()
{ "_id" : ObjectId("59df362e6ecc1229670714fb"), "i" : 0 }
如果要在应用更新后获取对象,需要传入
{returnNewDocument:true}
选项,请参见下面的相同示例:

> db.test.save({i: 0.0})
WriteResult({ "nInserted" : 1 })
> db.test.find()
{ "_id" : ObjectId("59df37406ecc1229670714fd"), "i" : 0 }
> db.test.findOneAndUpdate({ "_id" : ObjectId("59df37406ecc1229670714fd")}, {$inc: {i: 1.6} }, {returnNewDocument:true})
{ "_id" : ObjectId("59df37406ecc1229670714fd"), "i" : 1.6 }
> db.test.findOneAndUpdate({ "_id" : ObjectId("59df37406ecc1229670714fd")}, {$inc: {i: -1.6} }, {returnNewDocument:true})
{ "_id" : ObjectId("59df37406ecc1229670714fd"), "i" : 0 }
> db.test.find()
{ "_id" : ObjectId("59df37406ecc1229670714fd"), "i" : 0 }
>

有关更多信息,请查看文档-

您能给我们提供更多信息吗?上下文,代码示例,诸如此类的东西?你能给我们更多的信息吗?上下文,代码示例,诸如此类的东西?谢谢。它帮助了我。!非常感谢。它帮助了我。!