gpt4 book ai didi

java - 用吗啡搜索一组对象

转载 作者:行者123 更新时间:2023-11-29 04:55:41 30 4
gpt4 key购买 nike

我在计算吗啡查询时遇到问题。我有这样的架构:

{ authorId:12345,
comments:[
{ userId:34567,
name:"joe" },
{ userId:98765,
name:"sam" }
]
}

并且我想使用 morphia 查找所有记录,其中 searchId 等于 authorId 或 userId。

我已经尝试了一系列的东西,但我没有得到它。例如

Query<Record> query = datastore.find(Record.class);
query.or(
query.criteria(authorId).equal(searchId),
query.criteria(comments).hasAnyOf(Collections.singletonList(searchId))
);

我也试过使用 hasThisElement,但也没用。
我该怎么做?

最佳答案

因为 comments 是一个嵌入字段,所以使用 dot notation 查询嵌入文档的字段。 mongo shell 查询

db.records.find(
{
"$or": [
{ "authorId": searchId },
{ "comments.userId": searchId }
]
}
)

是您在这里需要的。 Morphia 的等价物是

Datastore ds = ...
Query<Record> q = ds.createQuery(Record.class);
q.or(
q.criteria("authorId").equal(searchId),
q.criteria("comments.userId").equal(searchId)
);

//list
List<Record> entities = q.asList();

关于java - 用吗啡搜索一组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33866619/

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