仅当两个值都存在时才唯一

文盲

我有一个这样的架构

const appSchema = new mongoose.Schema({
 email: String,
 appId: {
   type: String,
   required: true
 }
})

我与appUserSchema.index({ email: 1, appId: 1}, { unique: true, sparse: true });.

如果我想要多个email为空(匿名用户)怎么办?email由于上述限制,目前我只能有一个条目

安娜熔岩

您可以partialFilterExpression在此处使用选项。(mongo docs

您可以按如下方式创建索引:

appUserSchema.index({ email: 1, appId: 1}, { partialFilterExpression: { email: { $exists: true } }, unique: true});

您应该删除 sparse 选项,因为它与部分索引不兼容。如果电子邮件存在,它仅在此处创建复合索引。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

仅当两个类别都存在时才显示帖子

应用两个Folds或Getters,仅当两个都成功时才成功

仅当存在两个或多个空格时才替换字符串中的空格

仅当两个 CSV 文件中都存在 CSV 数据时才打印出来

RxJava ConcatArrayDelayError 和过滤器:仅当两个源都失败时才返回错误

仅当两个单元格在Excel中都具有值时才减去它们

仅当两个值匹配时才从 XML 文件中提取数据。(使用 .bat )

自定义“节点”类的两个实例在向每个实例传递唯一值时都打印相同的值

是否有 loadash 函数来比较两个数组并仅当 arr2 中的所有值都存在于 arr1 中时才返回 true?

仅当两个单元格都不为空时,才在两列值之间添加“,”

仅当存在所有ID或更多ID时才在两个不同的列表对象之间找到匹配的ID?

仅当ggplot中的值A大于值B时,才如何对两个时间序列之间的区域进行着色?

使用仅保留唯一值的列组合连接两个 pyspark 数据框

如何合并两个仅包含唯一值的词典

当字段每个唯一值具有两个值时,报告每个唯一ID返回多个值

仅当具有两个类并且共享相同的第一个类时才选择元素

仅当另一个选定的列满足条件时,才如何比较两个单独的列的日期

仅当两个单元格中有一个条目时,才合并文本内容

sql Oracle:仅当值存在时才从另一个表插入一个值

比较两个查询结果并检查两个值是否都存在

vba计算两个单元格中日期之间的天数,仅当两个单元格中都有日期时才返回值

MySQL:仅当另一列中的值唯一时才设置值

如何在比较两个不同的 excel 列时选择唯一值?

仅当值存在时,才通过vlookup另一个数据框替换列中的值

仅当两个表中都存在员工时才从临时表更新员工 ID

我需要编写一个仅当两个数字为整数时才打印两个数字之和的代码,否则返回错误?

仅当使用MySQL的一个表中的列值与另一表中的列值相同时,才如何从两个表返回数据?

仅当行和列值相同时才添加两个pandas数据框值

Django的。仅当两个Model字段都提供了用于创建和更新调用时,才检查“ unique_together”