为什么集合存在但在展示集合中找不到?

时间:2013-08-07 09:05:40

标签: mongodb

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

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

但展示收藏结果中未列出stat

1 个答案:

答案 0 :(得分:0)

任何集合几乎都存在(即,您不会收到错误消息,说“您没有创建集合”)。只要将第一个文档插入到集合中,这也将在物理上存在(将在磁盘上创建)。因此,如果您确实要确保集合存在,请使用:

db.getCollectionNames()

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

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

db.myColl.drop()

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

至于你的例子,运行:

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

会告诉你:

Collection stat exists: true