Mongodb 如何创建mongo索引以确保字段从不为空/不存在/为空?
我在实体中有一个字段,它必须存在,但不一定是唯一的。 有没有办法在Mongo中强制执行此约束 我知道mongo集合是无模式的,集合可以拥有的唯一模式是索引模式。但我看不出是否有索引选项来确保字段值不为空,其中空字段值满足以下javascript表达式:Mongodb 如何创建mongo索引以确保字段从不为空/不存在/为空?,mongodb,Mongodb,我在实体中有一个字段,它必须存在,但不一定是唯一的。 有没有办法在Mongo中强制执行此约束 我知道mongo集合是无模式的,集合可以拥有的唯一模式是索引模式。但我看不出是否有索引选项来确保字段值不为空,其中空字段值满足以下javascript表达式: !value && value !== 0 && value !== false 只有在唯一索引上,才能模拟这种情况。您可以创建一个缺少字段/值的条目的文档,它将使用索引中的空值创建文档,并且不允许进一步缺少值
!value && value !== 0 && value !== false
只有在唯一索引上,才能模拟这种情况。您可以创建一个缺少字段/值的条目的文档,它将使用索引中的空值创建文档,并且不允许进一步缺少值
由于您的需求是非唯一键,因此我认为在MONGODB(v2.2)中,您目前没有选项确保这些值必须出现在索引列上 在mongodb中,只有
\u id
字段可以满足您的要求。对于这个问题,索引似乎不是一个好主意(也不可行)
我认为您必须在应用程序的插入和更新操作中强制执行此规则,而不是让mongodb为您观看 这可能是您想要的答案(在Java/Kotlin中):
从V3.2开始,现在就可以这样做了。有关更多信息,请参阅:
col.createIndex(Document("note", 2), IndexOptions()
.partialFilterExpression(Filters.and(
Filters.gt("note", ""),
Filters.exists("note")))