【问题标题】:Mongoose findByIdAndUpdate doesn't generate _id on insertMongoose findByIdAndUpdate 不会在插入时生成 _id
【发布时间】:2017-02-07 06:37:20
【问题描述】:

我正在尝试使用猫鼬的findByIdAndUpdate 方法。当我更新具有 _id 字段集的现有文档时,效果很好。但是,插入一个带有upsert: true 的新文档会插入一个没有生成_id 的文档(_id 字段为 null),这会导致各种问题。为什么 upsert 不生成 _id

这里是代码,新文档 newRecord._id 未定义:

myModel.findByIdAndUpdate(newRecord._id, newRecord, {
  upsert: true, 
  new: true,
  runValidators: true,
  setDefaultsOnInsert: true
}, function(err, patient) {
  //do something 
});

【问题讨论】:

    标签: mongodb mongoose


    【解决方案1】:

    因为你是 upserting,如果你指定第一个参数,因为它找不到 NULL(mongoose 将 undefined 视为 null)它会创建它。

    我会说不要使用 findbyid 而是使用 model.update。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-03
      • 2020-10-27
      • 2018-07-22
      • 2018-05-13
      • 2021-05-26
      • 2021-10-23
      • 2015-01-22
      相关资源
      最近更新 更多