簡體   English   中英

刪除 Mongo shell 中 MongoDB collections 中的所有文檔

[英]Delete all documents in MongoDB collections in Mongo shell

我想刪除所有 MongoDB collections 中的所有文檔。 有沒有辦法刪除所有 collections 中的所有文檔。

我正在使用db.collection.remove({})但它只刪除一個集合中的所有文檔。 有什么命令可以做嗎? 我主要使用NodeJS,也許有機會使用NodeJS刪除所有collections中的所有文檔?

對不起,如果問題很愚蠢,剛剛開始在 MongoDB 工作。

正如已經建議的那樣 - 您可以使用.dropDatabase()刪除整個數據庫或使用.collection.drop()刪除一個集合,或者如果它只是刪除所有 collections 中的所有文檔,那么您需要迭代 collections 列表並實現.collection.remove().collection.deleteMany().findAndModify()在查詢條件中沒有任何過濾器。

要單獨刪除每個集合中的文檔:

首先使用.getCollectionNames()列出所有集合名稱,然后刪除文檔。

let colls = db.getCollectionNames() // Mongo shell can accept .Js Func's, if you've more collections you can use parallel as well
colls.forEach(eachColl => db[eachColl].remove({})) // or .deleteMany() or . findAndModify()

這樣做,您仍然擁有數據庫和空 collections 存在於 MongoDB 服務器上。 也許您可以在某個可用的 collections 的檢查列表后回來,或者重命名一些等。

但是,如果您只是不想查看在不久的將來會存在的集合名稱,那么 go 前面的drop命令更適合 drop database,因為您想從所有 collections 中刪除所有文檔 - 為什么它是首選? 這是因為與 SQL 數據庫不同,如果您第一次將文檔寫入數據庫中的集合,MongoDB 會自動創建數據庫和集合。 因此,在 MongoDB 中,您可能不需要使用空 collections 維護數據庫。

假設您正在查詢mylife數據庫中名為girlfriend的集合 - 假設它已被刪除/丟失/從未存在,那么.find()將返回[]空數組,就像在數據庫上查詢空集合一樣 - 這是優勢使用 MongoDB 因為它不會在不匹配的名稱上引發錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM