停止mongodb动态创建dbs和集合

时间:2014-05-24 00:24:54

标签: mongodb

有没有办法在查询中看到一个dong和集合后,立即关闭mongo偶尔创建dbs和集合的能力。我一直在mongo控制台上运行查询并错误输入数据库或集合名称,导致mongo只创建一个。应该有一个开关让mongo只显式创建dbs和集合。我无法在文档中找到一个。

3 个答案:

答案 0 :(得分:10)

要明确,MongoDB不会自动在查询上创建集合或数据库。对于集合,当您实际将数据保存到集合时,它们是自动创建的。您可以自己测试,对数据库中以前未知的集合运行查询,如下所示:

use unknowndb
db.unknowncollection.find()
show collections

没有名为" unknowncollection"显示,直到您插入或保存到它。

数据库有点复杂。简单的"use unknowndb"不会自动创建数据库。但是,如果在执行此操作后运行"show collections"之类的操作,则会创建空数据库。

我同意,控制这种行为的选择会很棒。如果你在mongoDB上打开一张Jira票,很高兴为它投票。

答案 1 :(得分:2)

不,隐式创建集合和数据库是控制台的一项功能,可能无法禁用。您可以查看2.6的security/authorization/role功能,看看是否有任何帮助(尽管根据我的知识,这并不是完全符合您的要求的东西)。

我建议查看MongoDB问题/错误/请求数据库系统here,并选择添加功能请求(如果它尚未存在)。

答案 2 :(得分:1)

对于使用Mongoose的用户,如果您的Mongoose Schema包含任何形式的 index ,则会自动创建一个新数据库。这是因为Mongo需要在插入所述索引之前创建数据库。

相关问题