mongoose 添加新字段到mongo如果不存在

fbcarpbf  于 2023-08-06  发布在  Go
关注(0)|答案(2)|浏览(126)

我的mongo-db中有这个文档

{
    "key": 1,
    "name" "abc"
  }

字符串
现在我想更新它,并希望设置年龄为20,所以我使用更新查询保持upsert为真,但它不更新年龄字段不存在,我怎么能使查询,所以它创建的字段,如果它不存在

ia2d9nvy

ia2d9nvy1#

您可以尝试使用findOneAndUpdate函数
参见https://sparkbyexamples.com/mongodb/mongodb-insert-if-not-exists/?amp=1

db.findOneAndUpdate(
   { key:1 },
   { $setOnInsert: { key: 1,name:”abc”,age: 20 } }, 
   { upsert: true, returnOriginal: false }
)

字符串

v9tzhpje

v9tzhpje2#

如果该字段不存在,$set将添加一个具有指定值的新字段
doccumentation

db.collection.updateOne(
  { "key": 1 }, 
  { $set: { "name": "abc", "age": 20 } }, // The update operation using $set to update "name" and set "age" to 20
  { upsert: true } // Optional: Set to true to insert a new document if no matching document is found
);

字符串

相关问题