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

Mongo@DBREF唯一

席弘图
2023-03-14

我的应用程序使用Spring Boot/JPA/MongoDB。

我使用以下方法将域类映射到MongoDB

org.springframework.data.mongodb.core.mapping.Document;
org.springframework.data.mongodb.core.index.Indexed;
org.springframework.data.mongodb.core.mapping.DBRef;
@DBRef @Indexed(unique = true)
private User owner;
@Indexed(unique = true)
@Size(min = 2, max = 100)
@Column(length = 100)
private String name;

但找不到如何使我的DBRef字段唯一。

共有1个答案

傅琦
2023-03-14

我是从Morphia这边来的,但我想试试这个:

@CompoundIndexes({
    @CompoundIndex(name = "owner", def = "{'owner.id' : 1}", unique = true)
})
 类似资料:
  • 我写代码时遇到了麻烦,这将允许以一种简单明了的方式获取用户和索赔细节。这是我的MongoDB结构, 我的实体类是: 索赔类别: 我有一种方法可以按名称获取用户,如下所示, 如果我尝试使用这个方法,会得到一个错误, 找不到能够从类型<code>org.bson.types转换的转换器。ObjectId以键入 所以我更改了我的用户实体类,如下所示, 而不是

  • 我是spring数据Mongo的新手,所以我肯定做错了什么,因为我无法执行这样一个简单的查询。这是我的模型: 我想从一个品牌获得所有的模型,所以我实现DAO如下: 如果我在shell中执行这个mongodb查询,它就会工作: 但是,Java应用程序抛出以下异常: 很明显,它在Brand类中查找一个字段$id,但由于它不存在,它失败了。因此,我将查询更改为以下内容,以便它导航到id字段: 现在,它没

  • 我有一个mongo搜索集。每个搜索都有一个criteria对象,该对象可以有任何条件组合。比如: 我正在构建一个mongo聚合管道,我想知道如何只投影密钥,以便我可以计算它们。 到目前为止,我的管道的第一步是: 这将正确返回所有criteria对象,现在我需要以某种方式投影键。有人有什么想法吗? 编辑:所需输出:

  • 我想使用Mongo-Scala驱动程序创建一个集合的唯一索引。这个驱动程序是新的,我也是Scala的新手。我无法通过这两种方法创建索引。 还有这个: 有没有人可以帮助如何在Mongo-Scala驱动程序中创建唯一的索引,因为它是非常新的,没有太多的信息可用。

  • Mongoose似乎不支持Mongo DBREF。显然,他们发布了“dbref”支持,但它实际上只是简单的引用(不具备引用不同集合中的文档的能力)。我终于创建了一个模式,允许我保存ObjectID引用的数组并填充它们,这对于我的模式的某些部分是很好的,但是如果我可以使用适当的DBREF创建一个数组,允许我引用来自多个集合的文档,那将是非常方便的。 幸运地(?)有一个模块可以在Mongoose中修补

  • 我试图在我们的COSMOSDB上的一些集合上创建一个唯一的索引。每个MS文档https://docs.microsoft.com/en-us/azure/cosmos-db/mongoDB-indexing:只有当集合为空(不包含任何文档)时,才能创建唯一索引。 因此,我清理了集合上的所有数据,但遇到错误时,消息是: 你知道为什么我会出错吗? 谢谢,