2016-11-28 66 views
0

美好的一天。我想從文檔中刪除除了某個列表以外的所有字段。我知道$ unset運算符,但我不知道如何在我的任務中使用它。先謝謝你。如何從文檔中刪除除了某個列表以外的所有字段? (mongoDB)

+1

有一個答案在這裏有關列出所有的唯一鍵集合中:http://stackoverflow.com/questions/2298870/mongodb-get-names-of-all-keys-in-collection那麼你可以您可以刪除不想從列表中刪除的所有密鑰。然後循環並取消每個文檔中不需要的鍵。 – axlj

+0

我以爲mongo有一些操作符(如$ unset),它通過一個沒有循環的請求來刪除這個字段。但我認爲這會對我有幫助。謝謝=) – Nesh

回答

0
db.products.update(
    { sku: "unknown" }, 
    { $unset: { quantity: "", instock: "" } } 
) 

上述查詢將從sku未知的所有產品文檔中刪除數量和庫位。

,你可以在上面的例子中的線寫您的查詢,但如果 你只是想從每一個文檔中刪除幾個字段只是忽略 條件部分,即SKU:「未知」,而不是通過{}和它會 影響集合中的每個文檔。

+0

謝謝,但我想刪除除了一些列表以外的所有字段。我只有我想要保留的字段列表,以及我想要刪除的所有其他字段。 – Nesh

+0

所以你的意思是相反的。好吧,我會試圖找出一個可以幫助你的查詢。 –