2
默認情況下,MongoDB的上collection.save()返回文檔中所述一個寫結果對象:MongooseJS會在save()上返回一個新的結果對象嗎?
The save() returns a WriteResult object that contains the status of the insert or update operation.
但隨着貓鼬(我猜節點底層mongodb的驅動程序),您可以添加第二個參數從蒙戈 是否userResult
包含檢索到的數據,這是一個新的對象,或者是傳入已經通過了對象:所填充與您剛插入的全部對象,並使用新的_id:
var user = new User(req.body);
user.save(function (err, userResult) {
if (err) {
log.error(err);
}
log.debug('User data: ', userResult);
});
所以我的問題到save()方法並從數據庫調用合併只有一些部分數據,如生成_id和/或創建日期?
我使用3.8 ..我不明白髮生了什麼https://github.com/Automattic/mongoose/blob/3.8.x/lib/model.js#L167 – esgy
它仍然返回相同'self'和'numAffected',但它在內部使用promise。 'Model.prototype.save()'中有一個'complete'函數,通過'handleSave'輔助方法創建。當這個被調用時,只要第一個err參數爲null,它將以同樣的方式解決。你可以在這裏看到它:https://github.com/Automattic/mongoose/blob/3.8.x/lib/model.js#L133 –
我做了一些測試,我有這段代碼: var bigMessage =' {... 4kb數據在這裏}}; var message = new Message(bigMessage); message.save(功能(ERR,theMessage){ 如果(ERR){ 的console.log( 'ERR',ERR); } 的console.log( '消息:',theMessage); }); 使用'mongostat'我看到netIn netOut節這些值: netIn 5K netOut 4K 這是否意味着數據被返回到節點的應用程序? – esgy