gpt4 book ai didi

java - 如何从 "referenced"文档ID获取完整的Json

转载 作者:行者123 更新时间:2023-12-01 12:45:14 25 4
gpt4 key购买 nike

我使用@Reference来获取我需要的所有信息:

吗菲亚:

Query<Usuario> query = INSTANCE.createQuery(User.class);
return query.asList();

这让我返回:

{"users":[{"id":"53c5dc31278cbc6f862d8556","username":"MyUserName","password":"1","person":{"id":"53c5dc31278cbc6f862d8555","name":"My Name is"..rest of attrs from person..

对我来说,这似乎非常容易获得有关某事物的所有信息

但是 MongoDB 的文档说我们在第一种情况下使用普通引用,只需将引用的文档 ID 添加到第一个文档中,例如:

MongoDB 文档:

public class User {

@Id ObjectId id;
String username;
String password;
String personId; //or the ObjectId personId
}

public class Person {
@Id ObjectId id;
String name;
..
}

这将返回类似:

{"users":[{"id":"53c5dc31278cbc6f862d8556","username":"MyUserName","password":"1","personId":"53c5dc31278cbc6f862d8555"}]}

如何返回人员的所有 json 来代替 personId 的位置,就像第一个示例一样,如果我以这种方式使用,我也必须更改 View ,在第一个示例中,我只需要使用在 View 中显示结果类似于 user.person.name

为什么使用 @Reference 的查询和使用 person id 的普通引用可能不同?

因为两者都会执行 2 个查询??!?!

最佳答案

如果您存储的只是此人的 ID,那么这就是您将返回的全部内容。如果您希望在 User 对象返回中包含完整的 Person 对象,则需要在 User 对象中拥有一个 Person 字段并使用 @Reference 对其进行注释。然后 Morphia 将加载您的 User 对象,然后执行另一个查询来加载引用的 Person 对象。但请注意,这确实会导致两个不同的查询,因此如果您要加载大量 User 对象,性能可能会成为问题。

关于java - 如何从 "referenced"文档ID获取完整的Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24771143/

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