我在一個實體中有一個字段,它必須存在,但不一定是唯一的。 有沒有辦法在Mongo中執行這個約束?如何創建一個mongo索引來確保一個字段永遠不會爲null/absent/empty?
我知道mongo集合是無模式的,集合可以擁有的唯一模式就是索引模式。但我不認爲,如果有一個索引選項以確保字段值不爲空,字段爲空值滿足以下JavaScript表達式:
!value && value !== 0 && value !== false
我在一個實體中有一個字段,它必須存在,但不一定是唯一的。 有沒有辦法在Mongo中執行這個約束?如何創建一個mongo索引來確保一個字段永遠不會爲null/absent/empty?
我知道mongo集合是無模式的,集合可以擁有的唯一模式就是索引模式。但我不認爲,如果有一個索引選項以確保字段值不爲空,字段爲空值滿足以下JavaScript表達式:
!value && value !== 0 && value !== false
只有在唯一索引,你可以種模擬這個。您可以使用字段/值缺失的條目創建文檔,它將創建索引中具有NULL值的文檔,並且不會允許進一步缺少值。
由於您的要求是針對NON UNIQUE鍵,因此我認爲您在MONGODB(v2.2)的這一點上沒有選項來確保這些值必須存在於索引列中。
在mongodb中,只有_id
字段可以滿足您的要求。對於這個問題,索引似乎不是一個好主意(既不可行)。
我認爲你必須在應用程序的插入和更新操作中執行這條規則,而不是讓mongodb爲你觀看。
從V3.2開始,現在可以實現了。有關更多信息,請參閱:https://docs.mongodb.com/manual/core/document-validation/ – pokkie