Hi everybody!
I have a document with a bool value, which I want to invert. How would I do that with golang?
I already established that I my update function works. I just don’t know which command to use.
Thank you in advance!
Hi everybody!
I have a document with a bool value, which I want to invert. How would I do that with golang?
I already established that I my update function works. I just don’t know which command to use.
Thank you in advance!
Hi @Tripple_U,
Sorry for the late reply but here is a solution written in the Mongo Shell which should be easy to transform into Golang ─ but sadly, I don’t speak golang yet .
test:PRIMARY> db.coll.insertOne({bool:true})
{
"acknowledged" : true,
"insertedId" : ObjectId("6075cfffdf48fa5c4d46e8ae")
}
test:PRIMARY> db.coll.findOne()
{ "_id" : ObjectId("6075cfffdf48fa5c4d46e8ae"), "bool" : true }
test:PRIMARY> db.coll.updateOne({"_id" : ObjectId("6075cfffdf48fa5c4d46e8ae")}, [{"$set": {bool: {"$not": "$bool"}}}])
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
test:PRIMARY> db.coll.findOne()
{ "_id" : ObjectId("6075cfffdf48fa5c4d46e8ae"), "bool" : false }
Note the important trick here: we are using the Aggregation Pipeline update syntax to use the $set
and get access to the current value with $bool
.
Cheers,
Maxime.