我将简化代码以专注于我需要了解的内容
假设我们有一个模式,一个模型:
//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
}
我所知道的是:
如果 body 包含“_id”字段,mongoose 将使用它的值来创建文档 id,如果没有,它将创建自己的
如果您尝试转换错误的类型,它将失败,因此您必须在创建时提供正确的类型(在这种情况下为 mongoose.Schema.Types.ObjectId)
我不知道的是:
假设我的身体包含一个“_id”键,但是:案例 1:
{_id:null, ...}
案例2:
{_id:undefined, ...}
那会发生什么?mongoose 是否会忽略这些值并创建自己的“_id”,或者尝试将(当然失败)转换为 ObjectId ?