2014-05-24 20 views
7

有沒有辦法關掉蒙戈的儘快零星創建DBS和收藏,因爲它看到一個在查詢的能力。我一直在mongo控制檯上運行查詢,並輸入數據庫或集合名稱,導致mongo創建一個。應該有一個開關讓mongo只顯式創建dbs和集合。我無法在文檔上找到一個。停止MongoDB的創建DBS和集合動態

回答

2

沒有,收藏和DB的隱式創作是控制檯的一個功能,可以不被禁用。你可以看看security/authorization/role的功能,看看有沒有什麼可以幫助的(儘管根據我的理解,沒有什麼東西與你的請求完全匹配)。

我建議通過MongoDB問題/ bug /請求數據庫系統here來查看並選擇添加功能請求(如果它不存在)。

9

要明確,MongoDB不會自動創建查詢集合或數據庫。對於集合,當您實際將數據保存到集合時,它們會自動創建。你可以自己測試這一點,在這樣的數據庫上運行一個以前未知的集合的查詢:在您插入或保存到它

use unknowndb 
db.unknowncollection.find() 
show collections 

名爲「unknowncollection」沒有作品集出現。

數據庫有點複雜。簡單的"use unknowndb"不會自動創建數據庫。但是,如果在執行此操作後運行諸如"show collections"之類的操作,它將創建空數據庫。

我同意,來控制此行爲的選項將是巨大的。如果你在mongoDB上打開Jira門票,很高興爲它投票。

0

對於使用Mongoose的人,如果您的Mongoose Schema包含任何形式的索引,將自動創建一個新的數據庫。這是因爲Mongo在插入所述索引之前需要創建一個數據庫。