2016-10-22 55 views
0

驗證我創造了一個在MongoDB中3.2沒有得到錯誤信息,甚至有在MongoDB中

db.createCollection("contacts", 
    { 
     validator: { $or: 
     [ 
      { phone: { $type: "string" } }, 
      { email: { $regex: /@mongodb\.com$/ } }, 
      { status: { $in: [ "Unknown", "Incomplete" ] } } 
     ] 
     }, 
     validationAction: "error" 
    } 
) 

與下面的驗證名爲「聯繫人」之後收集我插入下面的文檔後:

db.contacts.insert({ name: "Girish Gupta", status: "Updated" }) 
WriteResult({ "nInserted" : 1 }) 

有應該是一些錯誤,因爲我沒有插入有效的狀態。 但我沒有收到任何錯誤。

回答

0

我今天遇到了同樣的問題。

事實上,美國商務部剛剛指出的正下方可能出現的問題:

Restrictions說:

您不能指定在管理藏品,本地驗證器,並配置數據庫。 您無法爲系統。*集合指定驗證程序。

Bypass Document Validation

...對於那些已經啓用訪問控制,繞過文檔驗證部署,通過驗證的用戶必須擁有bypassDocumentValidation行動。內置角色dbAdmin和restore提供了此操作。

所以,如果我們使用admin來操作,那肯定會有bypass的驗證。只需添加一個新用戶(不是管理員),並執行操作將得到預期的答案。

相關問題