mongodb - 为什么集合存在但在显示集合中找不到?

标签 mongodb

在 mongo shell 中,我可以使用以下命令从集合 stat 中找到记录:

use gm;
gm.stat.find({});

stat 未在显示收集结果中列出。

最佳答案

任何集合实际上一直存在(即,您不会收到“您没有创建集合”的错误消息)。一旦您将第一个文档插入到集合中,它也将在物理上存在(将在磁盘上创建)。因此,如果您真的想确保集合存在,请使用:

db.getCollectionNames()

这将只显示至少插入了一个文档的集合,即使它们当前是空的。

在物理创建后,可以使用 drop 命令删除集合:

db.myColl.drop()

这将物理删除它,但“虚拟”仍然存在。

至于你的例子,运行:

db.stat.insert({}); print("Collection stat exists:" + (db.getCollectionNames().indexOf("stat") !== -1));

会告诉你:

Collection stat exists: true

关于mongodb - 为什么集合存在但在显示集合中找不到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18099143/

相关文章:

javascript - Node JS/MongoDB : Only connect one time to DB

java 9999-12-31 isodate 插入 mongodb 结果中作为插入的非 iso 日期

mongodb - 由于 x509 证书依赖于旧的 Common Name 字段,因此无法使用 Golang 连接到服务器

mongodb - 使用 mongodb 在 docker 上备份和恢复 Rocket.chat

mongodb - 如果仲裁器宕机了怎么办?

python - 通过匹配_id更新MongoDB集合

node.js - 使用 MongoDB 聚合计算计数和平均值

datetime - 在 mongoDB 中使用日期时间的最佳方式是什么

python - 显示存储在 MongoDB 中的 PNG 二进制图像

mongodb - 使用 mongo 计算所有文档中的数组出现次数