【发布时间】:2022-01-12 21:54:51
【问题描述】:
mongoDB 集合:
db.collection.find()
{ _id:'...', emp: 'A', name: 'nameA', age: 23 }
{ _id:'...', emp: 'B', name: 'nameB', age: 54 }
{ _id:'...', emp: 'C', name: 'nameC', age: 45 }
集合中插入的数据:
{ _id:'...', emp: 'D', name: 'nameA', age: 22 }
{ _id:'...', emp: 'B', name: 'nameB1', age: 34 }
{ _id:'...', emp: 'A', name: 'nameA1', age: 47 }
{ _id:'...', emp: 'E', name: 'nameE', age: 23 }
重复的 emp 行的数据将被新添加的值替换。 在集合中插入新数据后的输出:
{ _id:'...', emp: 'A', name: 'nameA1', age: 47 }
{ _id:'...', emp: 'B', name: 'nameB1', age: 34 }
{ _id:'...', emp: 'C', name: 'nameC', age: 45 }
{ _id:'...', emp: 'D', name: 'nameD', age: 22 }
{ _id:'...', emp: 'E', name: 'nameE', age: 23 }
【问题讨论】:
-
问题是什么?
-
向集合中添加新记录时,重复的 emp 行值将被替换为新值。
-
所以我假设
emp字段不是唯一值,并且您希望有多个带有emp: 'A'的对象而不是删除它们?当您对给定字段的约束有问题时,通常会发生删除。能否提供调用数据库插入新对象的函数? -
我想用新的姓名和年龄值替换旧的 emp: 'A'。我正在使用基本的插入方法来插入新数据。
-
使用带有 upsert 选项的更新
标签: python mongodb mongoose insert-update