嗨,大家好,这是问题:
我有一个mongoose架构,如下所示:
TopicSchema = new Schema({
topic_id: {type : String, required: true, index: true, unique: true, trim : true},
title: {type : String, required: true, trim : true},
path: [{topic_id: {type: String, index:true}, title: {type: String}}],
})
正如您所看到的,path属性由一个包含具有两个属性的对象的数组组成:topic_id和title。问题是当我进行更新操作时,mongodb或mongoose正在这些对象中创建一个名为_id的第三个字段。
以下是更新的显示方式:
1)创建一个javascript数组:var path = [{topic_id:“Arrow”,title:“Episode 1”}]
2)更新:
Topic.update({_id: topic._id}, {$set: {path: path}}, function(err, updatedTopic){
if(err){ callback(err); console.log("Error while updating: ", topic._id) }
})
当我检查数据库时,路径属性如下所示:{topic_id:“箭头”,标题:“第1集”,_id:Object_id(“XXXXXXXX”)}正如您所见,它会无处不在地创建一个_id属性。
我尝试修改模型属性名称,通过mongoose .save()和findByIdAndUpdate进行更新,我仍然得到相同的结果。
感谢您的帮助。