当前位置: 首页 > 知识库问答 >
问题:

MongoDB3.2中忽略空值的唯一索引

贺聪
2023-03-14

在MongoDB3.2中有可能避免这种情况吗?

共有1个答案

朱梓
2023-03-14

我正在添加这个答案,因为我正在寻找一个解决方案,但没有找到一个。这可能不能完全回答这个问题,也可能是,但会帮助很多像我一样的人。

例子。如果null的字段是housename,并且类型为string,则解决方案可以如下所示

db.collectionName.createIndex(
   {name: 1, houseName: 1},
   {unique: true, partialFilterExpression: {houseName: {$type: "string"}}}
);

这将忽略housename字段中的null值,并且仍然是唯一的。

 类似资料:
  • 我构建了一个REST服务,发现使用Gson从ObjectId生成的JSON字符串的格式与Spring-Boot生成的格式不同。如果我以GSON格式将现有文档的_id字段的ObjectId发送到REST服务,并使用MongoRepository的save函数将其保存到集合中,即使在这样的字段上设置了唯一的索引,仍会插入具有duplicated_id的新文档。但是,如果我以spring-boot生成的

  • 问题内容: 我正在尝试在表中的两个字段上创建唯一约束。但是,很可能一个人将为空。我只要求如果它们都不为null(永远不会为null),则它们必须是唯一的。 忽略表和字段名称的语义以及这是否有意义-我刚刚做了一些补充。 有没有一种方法可以在这些字段上创建唯一约束,从而对两个非null值强制执行唯一性,但是如果有多个条目(非null和null),则可以忽略呢? 这个问题是针对SQL Server的,我

  • 问题内容: 我有一个电子邮件列,我想保持唯一性。但我也希望它接受空值。这样我的数据库可以有2个空电子邮件吗? 问题答案: 是的,MySQL在具有唯一约束的列中允许多个NULL。 结果: 并非对于所有数据库都是如此。 例如,SQL Server 2005和更早版本仅在具有唯一约束的列中允许单个NULL值。

  • 这是我的东西 当我得到响应时,我看到 我的看起来像 问题 如何消除中的值?

  • 问题内容: HTML / CSS中是否有任何内容可以告诉浏览器完全忽略空格? 如此多次,当您想要将两个图像彼此并排放置时-拼命尝试使HTML可读,但是浏览器在它们之间放置了一个空格。 因此,而不是像这样: 你最终得到这个 真是太恐怖了! 问题答案: 哦,您只需一行CSS就可以轻松实现: 劣势,你问?尚无 浏览器实现此 极其有用的功能(通常考虑内联块)。 我有时会做些什么,尽管黑夜很丑,但还是要使用

  • 问题内容: 我有一个MySQL表来保存标签(即像在Stack Overflow上使用的那些标签)。它仅具有一个id(pk)和一个标签列来保存标签本身。 我的Tag实体的带注释的get方法如下所示。 我在标签上使用了唯一的列约束,因为给定标签的行不应超过一行。但是,Hibernate似乎忽略了这一点,即我可以多次保存完全相同的标签,并且它只是创建一个新行而不是抛出异常。 我是否缺少某些东西,还是应该