2013-07-30 25 views
7

我可以在需要設置特定屬性的mongodb中定義模式嗎?很像SQL中的NOT NULL。如果這是可能的。這是什麼語法?我可以要求在mongodb集合中設置屬性嗎? (非空)

我正在使用node.js和貓鼬。 貓鼬v3.6.15 MongoDB的v2.4.5

編輯 由查爾斯·A提供的答案是正確的,但通過我發現,貓鼬,也可以在架構defenition需要定義一個字段的文檔看像這樣:

foo : { 
    bar : { type : String, required : true } 
} 
+0

更多信息您使用的驅動程序?我知道如何用java在java中做到這一點。 – Jayz

+0

@Jayz答案更新quiestion ... –

+0

@LudwigMagnusson這將是更好地添加自己的答案作爲一個單獨的答案這個問題,然後接受,因爲使用'required:true'是最好的方法來做到這一點。 – JohnnyHK

回答

7

在貓鼬,你可以使用一個validator來檢查,如果你保存它之前,現場已設置。據我所知,沒有辦法在Schema上指定一個字段是必需的,所以它需要更多的樣板代碼。

-3

這個問題的一般答案與Mongoose無關,這是一個簡單的MongoDB問題,您是否可以在每個文檔中需要一個特定的鍵。

答案是:是的。在此集合上創建一個唯一索引。該索引應該是必填字段。只有一個文檔的字段值爲null,從而強制在所有文檔中出現該字段。用'稀疏'擊敗這個。

參見:​​

具體地,在唯一索引部分。請注意,這不適用於'散列'類型的字段。

+6

但我並不要求它是唯一的... –

相關問題