在下面的代码片段中,我使用的是 mongoose 和 mongo db。TestSchema 的 arr 属性的元素在第二次保存后具有不同的_id。这是否意味着第一次保存后的子文档在第二次保存后被自动删除?还是我必须在进行第二次保存之前明确删除它?
var SubSchema = new Schema({
itemId : String, value : String
});
var TestSchema = new Schema({
arr : [SubSchema],
prop1 : String
}) ;
var TestModel = mongoose.model("TestModel",TestSchema);
var test1 = new TestModel();
test1.arr = [{itemId :'abcabcabcabc', value : 'value1'}];
// first save
test1.save(function(err,testObj){
if(err){
console.error(err);
return;
}else{
console.log("testObj : " + testObj );
var id1 = testObj.arr[0].id; // id of zeroth element after first save
console.log("id1 : " + id1);
// replace arr with a new array
testObj.arr = [{itemId:'1', value : 'val1'}, {itemId:'2', value:'val2'}];
// second save
testObj.save(function(err,testObj){
if(err){
console.error(err);
return;
}else{
console.log("testObj : " + testObj); // gives 2 elements in arr with new _id's
var oldobj = testObj.arr.id(id1);
console.log("oldobj : " + oldobj); /// gives null
}
});
}
});