gpt4 book ai didi

mongodb - Spring Data - MongoDB 索引 DBRef

转载 作者:IT老高 更新时间:2023-10-28 13:15:05 39 4
gpt4 key购买 nike

我正在使用 spring-data-mongodb-1.2.0.RELEASE。我有两个类 A 和 B,其中 B 引用了 A,并用 @DBRef 注释。

A类:

@Document(collection = "a")
public class A {
@Id
public String id;

/** The TicketGrantingTicket this is associated with. */
@Field
public String name;

public A(String id, String name) {
this.id = id;
this.name = name;
}
}

B类:

@Document(collection = "b")
public class B {

@Id
public String id;

@Field
public String name;

@DBRef
@Indexed
public A a;

public B(String id, String name, A a) {
super();
this.id = id;
this.name = name;
this.a = a;
}
}

因为我正在查询 B 的所有引用某个 A 的实例:

B fromDB = mongoOperations.findOne(Query.query(Criteria.where("a.$id").is(a1.id)), B.class);

我需要将其编入索引。

第一次将 B 实例插入 MongoDB 后,应创建索引。如下所示,它没有:

有谁知道如何创建这样的索引?

此外,看起来 DBRef 文件(如 mongo shell 所见)与定义的格式不匹配 MongoDB documentation .

我错过了什么吗?

最佳答案

您可以使用 mongo shell 创建索引,但如果您想通过代码来创建索引,并且由于您使用的是 spring-data-mongodb,请使用:

mongoTemplate.indexOps(B.class).ensureIndex(new Index().on("a", Order.ASCENDING));

如果你的类名不匹配,你也可以指定集合的​​名称:

mongoTemplate.indexOps("b").ensureIndex(new Index().on("a", Order.ASCENDING));

关于mongodb - Spring Data - MongoDB 索引 DBRef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15818619/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com