猫鼬:使用“ 1”作为Schema.Types.ObjectId的值创建模型
我想做的是以下事情,我将模型定义为:
const channelSchema= new Schema({
name:{type: String},
country_id:{type: Schema.Types.ObjectId, ref: 'country'}
})
和
const countrySchema = new Schema({
_id{ type : Number }
name: { type: String },
gmt: { type: String }
})
现在,当我创建一个新的countrySchema时,我使用个性化的“ _id”,例如1或2,始终是一个数字,依此类推,这会产生0个错误。我的问题是当我尝试使用
创建新的频道架构时country_id = "1"
或
country_id = 1
我收到错误:
'Cast to ObjectID failed for value "1" at path "country_id"'
我从猫鼬文档中了解到的内容,ObjectId是默认创建的,具有12bytes。我的问题是:有没有一种方法可以避免必须使用12bytes的密钥,并使用“ 1”作为ObjectId,以便我可以在各个国家/地区填充频道?重要:我正在使用Node.J,猫鼬和快递
回答如下:您可以使用“ id”代替“ _id”。