У меня есть класс Java под названием Project с свойством users
ArrayList<User>
, который содержит объекты User.Morphia: Фильтрующий элемент в ArrayList с использованием Morphia
Моя коллекция проектов выглядит
[
{
"_id" : ObjectId("56410150d277de02f3b67495"),
"name" : "my-project",
"users" : [
{
"id" : "58b5eb81-35b2-4719-87ad-e5eea76a478f",
"name" : "john",
"lastName" : "Doe"
}
]
}
]
Я хочу, чтобы найти пользователя с определенным UUID внутри этого свойства. Я могу найти его в MongoDB со следующим запросом: db.getCollection('projects').find({"users.id": "58b5eb81-35b2-4719-87ad-e5eea76a478f"})
Как получить те же результаты с помощью Morphia?
Я попытался это:
Project project = datastore.createQuery(Project.class).filter("users.id", user_id).get();
И это:
Project project = datastore.find(Project.class, "users.id", user_id).get();
Но не повезло :(
Любая помощь
Я ожидаю получения:
{
"id" : "58b5eb81-35b2-4719-87ad-e5eea76a478f",
"name" : "john",
"lastName" : "Doe"
}
Можете ли вы, возможно, изменить свой вопрос, чтобы включить некоторые выборочные данные в 'projects' коллекции, результаты запроса найти и ваш ожидаемый выход? – chridam
Я включил дополнительную информацию в вопрос. Я не получаю результатов, когда пытаюсь выполнить запрос с помощью Morphia – fiunchinho
Спасибо за обновление, это намного лучше и понятнее! – chridam