2016-07-05 75 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