我想知道如果我在快遞中使用貓鼬的方式做錯了什麼。我的代碼看起來不對。它需要2貓鼬查詢來添加文件中的東西,我想知道這是否可以簡化。最佳的搜索方式,並從Mongoose中的數組中刪除
所以這個函數會在我的路由中被引用,如何簡化呢?它在集合中搜索用戶通知文檔,刪除待處理數組中的某些內容,並將其保存。我還想添加另外兩個查詢來查找用戶接受的請求文檔,並在其中添加舊的待處理文檔,但是它會在一個請求中創建總共4個查詢和一個循環......它聽起來不對。
我想知道如果我在快遞中使用貓鼬的方式做錯了什麼。我的代碼看起來不對。它需要2貓鼬查詢來添加文件中的東西,我想知道這是否可以簡化。最佳的搜索方式,並從Mongoose中的數組中刪除
所以這個函數會在我的路由中被引用,如何簡化呢?它在集合中搜索用戶通知文檔,刪除待處理數組中的某些內容,並將其保存。我還想添加另外兩個查詢來查找用戶接受的請求文檔,並在其中添加舊的待處理文檔,但是它會在一個請求中創建總共4個查詢和一個循環......它聽起來不對。
那麼,如果你想找到和更新的東西,總有兩個請求:-)你可以試着通過populate用戶參考添加到NotificationsReference,並修改他們的權利,當你NotificationsReference。
我有類似的問題,但現在我找到了解決方案。您可以從您的待處理數組中刪除項目只是打電話去除它的功能,貓鼬數組實現的是:http://jsdoc.info/SirUli/mongoose/types%7Carray.html#instance/remove
var acceptRequest = function(userId, requesterId, callback){
NotificationsReference.findOne({ id: userId}, function(err, result){
if(err || result === null){
callback("Could not accept notification. Stack: " + err);
}else{
var deletedRefId = 'unchanged';
result.pending.remove(requesterId)
result.save(callback(err))
}
});
}
這樣一個很好的問題:-) – Sven 2012-06-07 12:23:38