如何创建一个mongo索引以确保字段永远不会为null/absent/empty?

mar*_*ark 10 mongodb

我在实体中有一个字段,必须存在,但不一定是唯一的.有没有办法在Mongo中强制执行此约束?

我知道mongo集合是无模式的,集合可以拥有的唯一模式是索引模式.但我不知道是否有索引选项来确保字段值不为空,其中空字段值满足以下javascript表达式:

!value && value !== 0 && value !== false
Run Code Online (Sandbox Code Playgroud)

mur*_*uga 6

只有在UNIQUE索引上,你可以嘲笑这个.您可以使用缺少字段/值的条目创建文档,它将在索引中创建具有NULL值的文档,并且不允许进一步丢失值.

由于您的要求是NON UNIQUE键,我认为您在MONGODB(v2.2)中此时没有选项来确保索引列上必须存在值.

  • 从V3.2开始,这是可能的.有关详细信息,请参阅:https://docs.mongodb.com/manual/core/document-validation/ (4认同)