2012-01-06 44 views
3

我想知道如果我在快遞中使用貓鼬的方式做錯了什麼。我的代碼看起來不對。它需要2貓鼬查詢來添加文件中的東西,我想知道這是否可以簡化。最佳的搜索方式,並從Mongoose中的數組中刪除

所以這個函數會在我的路由中被引用,如何簡化呢?它在集合中搜索用戶通知文檔,刪除待處理數組中的某些內容,並將其保存。我還想添加另外兩個查詢來查找用戶接受的請求文檔,並在其中添加舊的待處理文檔,但是它會在一個請求中創建總共4個查詢和一個循環......它聽起來不對。

​​
+0

這樣一個很好的問題:-) – Sven 2012-06-07 12:23:38

回答

0

那麼,如果你想找到和更新的東西,總有兩個請求:-)你可以試着通過populate用戶參考添加到NotificationsReference,並修改他們的權利,當你NotificationsReference。

2

我有類似的問題,但現在我找到了解決方案。您可以從您的待處理數組中刪除項目只是打電話去除它的功能,貓鼬數組實現的是: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)) 
    } 
}); 
} 
相關問題