2017-02-10 52 views
0

我需要從與在URL對象的ID下面的MongoDB數據庫中刪除URL,然後需要將剩餘數據的結果如何使用Mongoose中的Object ID去除嵌套的數組對象值?

我的MongoDB集合有以下幾點:

{ 
     "_id" : ObjectId("589b043abc2f5a467c13303b"), 
     "user_id" : ObjectId("5874c174c813822341cb59a7"), 
     "filename" : [ 
     { 
     "url" : "images/product_images/file-1486554170465.jpeg", 
     "_id" : ObjectId("589b043abc2f5a467c13303c") 
     }, 
     { 
     "url" : "images/product_images/file-1486554306440.jpeg", 
     "_id" : ObjectId("589b04c2bc2f5a467c13303f") 
     }] 
    } 

任何人可以請幫助我,在此先感謝..

+0

您可以使用來自Mongoose的'select(['field1','field2'])''。或者你可以用Lodash庫中的'_.pick()'或'_.omit()'做一些後處理。 – zeronone

+0

你有什麼信息來獲取文檔?你有文件的_id和你想刪除的文件名的_id嗎? –

+0

我有用戶ID,網址和整個集合ID,我需要刪除的網址。 –

回答

1

在貓鼬,你可以做到這一點 -

CollectionInstance.findByIdAndUpdate(documentId, { 
    $pull: { 
     filename: {_id: urlId} 
    } 
}, {new: true}); 

通過documentId我的意思是589b043abc2f5a467c13303burlId我的意思是589b043abc2f5a467c13303c在上面的示例代碼中。

我們在這裏做什麼發現是在集合中的特定文件通過其_id,然後通過其_id甩開了filename陣列的特定文檔。

{new: true}選項告訴Mongo返回更新的文檔。默認情況下,這個值是false,Mongo在更新之前返回文檔狀態。

+0

「new_add_schema.findByIdAndUpdate( 「589d64e9e4aee71251c56941」, {$ 拉: { 文件名: { 「_id」: 「589d6630866a0c1429f7e96a」 }} } , { 新:真正 }, 功能( req,vft) { console.log(vft) });' –

+0

我嘗試了以上,但它不刪除對象(url和id) –

+1

woooow,現在工作正常,3天后我得到了這個結果。謝謝 !!非常感謝Jyotman Singh –

相關問題