首页 > 解决方案 > 如何更新 mobgo db 中的集合

问题描述

我正在尝试使用 _id 5af5968e17abd4901f4ecfdb 更新集合值。

执行的查询:

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}
    }}
)

获取输出为:

 WriteResult({ "nMatched" : 0, "nUpserted" : 0, "nModified" : 0 })

在执行以下查询时,我得到了响应。

db.genericcrosssell.config.find().pretty()

输出:

{
    "_id" : ObjectId("5af5968e17abd4901f4ecfdb"),
    "FLIGHT_ISSUANCE_EMAIL" : {
        "USE_QUOTATION" : 1
    },
    "HOTEL_ISSUANCE_EMAIL" : {
        "USE_QUOTATION" : 1,
        "CAR_RENTAL" : 100
    }
}

此处仅引用 2 个值。

标签: mongodbmongodb-query

解决方案


您必须在传递值时传递 objectid:

尝试这个:

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}}})

推荐阅读