mongodb - MongoDB唯一索引允许重复
问题描述
我是 mongoDb 的新手,我对 mongock 有疑问。以前我有一个由注释定义的索引,如下所示。在我的单元测试中,我有一个案例试图在同一个字段上保存相同的值,它会按预期抛出异常。
@Indexed(unique = true)
private String name;
我删除了 @Indexed 注释,并通过 mongock 迁移创建了索引。但是这次我可以为该列插入具有相同值的记录而不会出现异常。那么这里有什么问题以及为什么它不能像上面那样工作。我将我的迁移创建为:
collection.createIndex(
new Document(new ImmutableMap.Builder<String, Object>()
.put("name", 1)
.build()),
new IndexOptions().name("name_idx").unique(true),
);
解决方案
如果不提供有关您正在使用的版本的信息,很难说。
但是我相信您的问题可能与旧的现有错误有关。
请使用最后一个版本 4.0.8.alpha,它是 alpha,因为功能还在添加中,但是非常稳定(还没有官方文档,但是你可以在这里看到示例项目)或最后一个官方稳定版本:3.3。 2.
请注意,在这两种情况下,您都应该使用 MongockTemplate,而不是 MongoTemplate。
我相信这会解决你的问题。否则,请提供版本和堆栈跟踪。
推荐阅读
- java - 标题与 IText PDF 中的主要内容重叠
- android - 如何从文件的 URI 中获取 base64?
- c# - 如何编写 HTTPClient 请求以从 WPF 应用程序访问 ASP.Net Core Web App 方法?
- python - 在 SCRAPY 中形成 XPATH 选择器
- java - 请帮助在 Java 代码中阅读此抽象数据类型
- parallel-processing - 在并行循环中,如果多个线程的条件为真而不是第一次遇到
- ios - 用作分页加载器时的 Gif,有时不显示在图像视图中
- c# - C# 中的自定义自动属性
- export - 如何使用 IronPython 脚本仅导出 Spotfire Selected 列?
- html - 隐藏在粘性导航栏后面的文本 (HTML/CSS)