Java 弹簧数据+;MongoTemplate-对文档的约束;不影响插入\保存

Java 弹簧数据+;MongoTemplate-对文档的约束;不影响插入\保存,java,spring,mongodb,spring-data,mongotemplate,Java,Spring,Mongodb,Spring Data,Mongotemplate,我在一个简单的web应用程序中使用spring数据 我有一个简单的文档,其中一个字段有唯一的约束: @Document @CompoundIndexes({ @CompoundIndex(name = "playerConstraint", def = "{ 'playerId': 1 }", unique = true) public class InProgressGameRound extends AbstractDocument { //... } 问题是,当我使用以下命令调用该文

我在一个简单的web应用程序中使用spring数据

我有一个简单的文档,其中一个字段有唯一的约束:

@Document
@CompoundIndexes({ @CompoundIndex(name = "playerConstraint", def = "{ 'playerId': 1  }", unique = true)
public class InProgressGameRound extends AbstractDocument {
 //...
}
问题是,当我使用以下命令调用该文档的存储库时: this.repository.save(newRound)

数据库中已经存在newRound.playerId的地方-我没有任何例外! 程序计数器继续运行,即使文档没有真正保存(由于限制),似乎一切都正常

如果我试图手动将相同的条目插入mongoDB,我会得到一个错误,即约束不允许插入

如何验证保存是否有效(使用存储库)


谢谢

另外,我建议使用一种变体。我不确定您的数据结构,但您可以尝试在不使用“
playerId
”的情况下插入文档。Mongo会自动为您的每个对象生成
\u id
,默认情况下,每个对象都是唯一的,甚至更多的
\u id
字段在Mongo中自动索引。

您解决过这个问题吗?