Reputation: 183
I am trying to update a collection value with _id 5af5968e17abd4901f4ecfdb.
Query executed:
db.genericcrosssell.config.update(
{_id: '5af5968e17abd4901f4ecfdb'},
{$set: {
"HOTEL_ISSUANCE_EMAIL:{"USE_QUOTATION":1,"CAR_RENTAL":0},
"HOTEL_MY_BOOKING":{"USE_QUOTATION":1,"CAR_RENTAL":0},
"HOTEL_PUSH_NOTIFICATION":{"USE_QUOTATION":0,"CAR_RENTAL":0},
"HOTEL_ISSUING_TRANSITION":{"USE_QUOTATION":0,"CAR_RENTAL":0},
"HOTEL_UPCOMING_TRIP":{"USE_QUOTATION":1,"CAR_RENTAL":0}
}}
)
Getting output as:
WriteResult({ "nMatched" : 0, "nUpserted" : 0, "nModified" : 0 })
On executing following query, I am getting response.
db.genericcrosssell.config.find().pretty()
Output:
{
"_id" : ObjectId("5af5968e17abd4901f4ecfdb"),
"FLIGHT_ISSUANCE_EMAIL" : {
"USE_QUOTATION" : 1
},
"HOTEL_ISSUANCE_EMAIL" : {
"USE_QUOTATION" : 1,
"CAR_RENTAL" : 100
}
}
Quoted only 2 values here.
Upvotes: 1
Views: 44
Reputation: 982
You must pass objectid while passing the value:
Try this:
db.genericcrosssell.config.update({_id: ObjectId('5af5968e17abd4901f4ecfdb')},
{$set: {"HOTEL_ISSUANCE_EMAIL":{"USE_QUOTATION":1,"CAR_RENTAL":0},"HOTEL_MY_BOOKING":{"USE_QUOTATION":1,"CAR_RENTAL":0},"HOTEL_PUSH_NOTIFICATION":{"USE_QUOTATION":0,"CAR_RENTAL":0},"HOTEL_ISSUING_TRANSITION":{"USE_QUOTATION":0,"CAR_RENTAL":0},"HOTEL_UPCOMING_TRIP":{"USE_QUOTATION":1,"CAR_RENTAL":0}}})
Upvotes: 4