我使用猫鼬5.4.13,发现了一个奇怪的行为: 如果我使用
mymodel.findOneAndUpdate(
{_id: '5c6ad3b1385ae7000e6c3c2c'}, //
updateObject)
它更新了错误的对象。出于某种原因,它更新了objectId
而不是5c6ad3b1385ae7000e6c3c2c
5beac8adeff330000ecfd957
。
如果我将id
转换为objectid
,它将按预期工作。但是,例如findById
无需转换即可工作。那是什么原因呢?
如文档中所述,猫鼬应该为我转换值。
编辑:
const schema: Schema = new Schema(
{
deviceToken: {
type: String,
required: true,
},
locale: {
type: String,
default: 'en',
required: false,
},
userUid: {
type: Schema.Types.String,
},
orders: [{
type: Schema.Types.ObjectId,
ref: 'Order'
}],
table: {
type: Schema.Types.ObjectId,
ref: 'Table',
required: true,
},
venue: {
type: Schema.Types.ObjectId,
ref: 'Venue',
required: true,
},
}, { timestamps: true }
);
export default model<MgSession>('Session', schema);
export const sessionSchema: Model<MgSession> = model<MgSession>('Session', schema);