2016-07-05 47 views
0

我有一个猫鼬模式集合A。然后,我创建了一个新对象,如下所示mongoose .save()忽略ObjectId _id

var myA = new A({ 
    name: 'A simple name' 
}); 

只要我知道,一旦我们已经这样做了,是该对象创建一个新的_id属性。这意味着,在这一天结束,应该(和它实际上看起来)像

{ 
    name: 'A simple name', 
    _id: ObjectId 
} 

的问题是,当我打

myA.save() 

它保存到MongoDB中有不同于之前创建的不同_id

关于为什么会发生这种情况的想法?我使用的是猫鼬4.4.8

回答

0

当你创建new A({...一个新的文件在内部标志着自己作为新的文件呼吁save()时产生适当的MongoDB的声明后评价我猜想 - 这“标志”可能致电save()时不立即更新。当你想产生测试数据时,这有积极的副作用,可以快速创建文档克隆:)

如果你想在创建后立即更新新保存的文档,那么你应该在回调函数在其第二个参数中获取保存文档的方法save