gpt4 book ai didi

java - Mongodb通过java中的嵌套字段搜索

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

假设我有名为 Person 的表,如下所示:

class Person{
ObjectId id;
String name;
@Reference
Address adr;
}
class Address{
Position pos;
}
class Position{
double longitude;
double latitude;
}

如何返回一个球体中的所有人员?球体的查询是:

DBObject queryOnVenue = QueryBuilder.start("pos").withinCenterSphere(longitude, latitude, radiusInMeters / HandlersConfiguration.EARTH_RADIUS).get();

最佳答案

你所拥有的 mongo 中没有嵌套字段。地址存储在其自己的集合中,引用存储在包含该地址 ID 的人员集合中。所以,本质上,person下是没有嵌套字段pos的。您想要做的是隐式联接,而 mongodb 不支持联接。您的两个解决方案(可能还有其他解决方案)是执行两个查询(一个用于查找地址,另一个用于查找这些用户)或在地址上使用@Embedded,以便将地址文档嵌入到存储在 mongodb 中的个人文档中。如果您选择选项 2,则可以在查询中使用 address.pos 引用该字段。

关于java - Mongodb通过java中的嵌套字段搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23508407/

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