#java #mongodb #morphia #odm
Вопрос:
Я пытаюсь перейти на Mongo Morphia 2. Документация очень плохая. Как мне следует переписать следующую функцию
return datastore.get(type, id.toUUID());
Я пробовал это
return datastore.find(type).field("_id_").equal(id.toUUID()).first();
Я не уверен, как отображается get(T, строка). Я не могу найти документацию по этой функции. Я изучил данные на MongoDB, я увидел, что все индексы имеют поле «идентификатор«.
Ответ №1:
Вы бы написали что-то вроде: datastore.find(type).filter(eq("_id", id.toUUID())).first()
. Вы также можете просто сослаться на имя поля java, и Morphia отобразит его правильно.
С какой версии вы обновляетесь? Этот API кажется мне безумно старым.
Комментарии:
1. Я думал, что datastore.get(тип, идентификатор.toUUID()); идентификатор относится к полю идентификатора по умолчанию, которое использует Монго. Который, как я думал, «_id_»
2.
_id_
это имя индекса._id
это имя поля документа. вы ссылаетесь на имена индексов только тогда, когда указываетеhint
, какой индекс использовать. При написании запросов всегда указывайте либо имена документов, либо имена полей java.3. Спасибо. Это было полезно. Пожалуйста, включите это в свой ответ.
4. В любое время! Рад помочь.