2015-11-07 33 views
0

Node.js應用程序中,我想通過Mongoose從數據庫獲取一些數據。我不喜歡這樣寫道:將Mongoose返回的數組轉換爲常規JSON

Users.find({_id:userID}).exec(function(err, users){ 

}); 

因爲users就像Mongoose對象數組,我不能這樣做:

users.toJSON(); 

這個作品,如果我用findOne但現在不工作。如果我在查詢中使用lean()這樣

object has no method 'toObject' 

:也users.toObject()不工作,我得到這個錯誤

Users.find({_id:userID}).lean().exec(function(err, users){ 

}); 

這個工作,但它也有其他的問題。例如,如果數組值沒有值,而不是像這樣顯示它:

myval:[] 

根本不顯示該鍵/值對!

我想要的是,我必須編輯該用戶的結果,顯然,它的Mongoose對象,我不能。因爲我必須將其轉換爲常規的JSON但是如何?

回答

0

只需使用findOne而不是find,您就可以編輯您的實例。

如果您絕對必須使用find,那麼知道users參數是用戶實例數組,因此只需循環它們並逐個編輯它們即可。

Users.find({_id:userID}).exec(function(err, users){ 
    users.forEach(function(user){ 
    // edit my user here 
    }); 
});