2013-07-24 63 views
0

嘿,你如何在不刪除父數組的情況下取消設置mongodb中的子數組。如何取消設置子數組mongodb?

這裏是我使用的貓鼬運行查詢:

User.findByIdAndUpdate(
    req.signedCookies.userid, 
    { 
     $addToSet: { 
      friend: { 
       friendId: mongoose.Types.ObjectId(req.body.friend), 
       date_added: new Date() 
      } 
     }, 
     $unset: { 
      notifications: { 
       receivedRequest: mongoose.Types.ObjectId(req.signedCookies.userid) 
      } 
     } 
    } 
); 

然而,這種刪除整個陣列的通知...

+0

子數組或子文檔? – zsong

+0

我有一個名爲通知的數組,其中包含數組,其中包含用戶ID,請求日期 – Lion789

+0

您可能想編寫一個程序來循環。目前似乎無法使用一個查詢,請檢出https://jira.mongodb.org/browse/SERVER-1243 – zsong

回答

0

你想取消設置只是一個領域:

User.findByIdAndUpdate(
    req.signedCookies.userid, 
    { 
     $addToSet: { 
      friend: { 
       friendId: mongoose.Types.ObjectId(req.body.friend), 
       date_added: new Date() 
      } 
     }, 
     $unset: { 'notifications.receivedRequest': " " } 
    } 
);