停止mongodb动态创建dbs和集合

Mar*_*osi 10 mongodb

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

Joh*_*one 10

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

use unknowndb
db.unknowncollection.find()
show collections
Run Code Online (Sandbox Code Playgroud)

在您插入或保存之前,不会显示名为"unknowncollection"的集合.

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

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


Wir*_*rie 2

不可以,隐式创建集合和数据库是控制台的一项功能,不能禁用。您可以查看2.6 的安全/授权/角色功能,看看是否有任何帮助(尽管据我所知,没有完全符合您的要求的东西)。

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