1

我将简化代码以专注于我需要了解的内容

假设我们有一个模式,一个模型:

//imports....

const schema = new mongoose.Schema({name: String});
const model = mongoose.Model('Thing',schema);

以及从该模型创建新文档的方法

async createDocFromBody(body){
  //... previous logic      

  await model.create(body);
  //....further steps

}

我所知道的是:

  1. 如果 body 包含“_id”字段,mongoose 将使用它的值来创建文档 id,如果没有,它将创建自己的

  2. 如果您尝试转换错误的类型,它将失败,因此您必须在创建时提供正确的类型(在这种情况下为 mongoose.Schema.Types.ObjectId)

我不知道的是:

假设我的身体包含一个“_id”键,但是:案例 1:

  {_id:null, ...}

案例2:

  {_id:undefined, ...}

那会发生什么?mongoose 是否会忽略这些值并创建自己的“_id”,或者尝试将(当然失败)转换为 ObjectId ?

4

0 回答 0