【发布时间】:2018-04-10 11:05:02
【问题描述】:
我有一个连接到 Raspi 的传感器,使用 Mongo 收集数据。每隔几天我就会复制数据库(使用mongodump),然后删除 Mongo 文件并重新启动传感器。
我在删除/清空 Mongo 时遇到了一些问题,想了解我做错了什么。
最初,我使用了以下命令:
use [database]
db.[nameOfOnlyCollection].remove({})
清空数据库(它只有一个集合)。使用命令db.[nameOfOnlyCollection].count() 我可以验证集合是否为空。
然而,即使在这之后,Mongo 仍然在 Raspi 上占据大量空间。更具体地说,这些(似乎与 Mongo 相关的)示例占用了好几场空间:
- /var/lib/mongodb
- /var/lib/mongodb/journal
- /var/log/mongodb
然后我发现an answer 推荐使用命令db.dropDatabase() 删除数据库中的所有条目。
我现在同时运行db.[nameOfCollection].remove({}) 和db.dropDatabase(),这已经解决了问题。这意味着,Mongo 不再占用演出空间。但是,我想了解发生了什么。
remove 和dropDatabase 命令有什么区别?什么时候应该使用一个,什么时候使用另一个? (我都在运行 - 这很傻吗?)另外,有谁知道为什么即使在运行 remove 之后 Mongo 仍然占用大量空间?
任何相关阅读的链接将不胜感激。 (但最好在“傻瓜”级别上阅读。说我是 Mongo 菜鸟是对真正的 Mongo 菜鸟的侮辱。)
【问题讨论】:
-
请查看答案。并标记是否有帮助
标签: mongodb