我正在尝试使用Pymongo在我的收藏中保存数据。
port = 27017
conn = pymongo.MongoClient('localhost', port)
db = conn.dbcoll
newReservationId ="Value change from front-end"
customerData = { 'firstName':"Jamesss", 'lastName':"Jamesss" }
db.person.update({'_id':'1223'}, customerData )
db.person.update({'_id':'1223'}, {"$addToSet":{"reservationList":newReservationId }} )
conn.close()
每次字段“reservationList”被新值“newReservationId”覆盖。假设在数组中附加新值“newReservationId”。
任何人都可以让我知道为什么$ addToSet不能像它想象的那样工作?
感谢您的帮助。
干杯,
答案 0 :(得分:1)
您的$addToSet
不是问题,它是覆盖整个对象的update
之前的问题。使用$set
只更新这两个customerData
字段:
db.person.update({'_id':'1223'}, {"$set": customerData} )
db.person.update({'_id':'1223'}, {"$addToSet":{"reservationList":newReservationId }})
更好的是,将两个更新合并为一个:
db.person.update({'_id':'1223'}, {
"$set": customerData,
"$addToSet":{"reservationList":newReservationId }
})