Мигрируйте в Mongo Morphia 2

#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. В любое время! Рад помочь.