Найти по идентификатору объекта в Jongo
Я знаю, что этот вопрос невероятно простой... Я извиняюсь заранее.
Я не могу найти Монго с помощью Jongo.
Я старался
Iterator<MongoTest> all = db.getCollection("mongoTest").find("{'_id': ObjectId('5194d46bdda2de09c656b64b')}").as(MongoTest.class).iterator();
Ошибка:
java.lang.IllegalArgumentException: {'_id': ObjectId('5194d46bdda2de09c656b64b')} cannot be parsed
at org.jongo.query.JsonQuery.marshallQuery(JsonQuery.java:34)
at org.jongo.query.JsonQuery.<init>(JsonQuery.java:27)
at org.jongo.query.JsonQueryFactory.createQuery(JsonQueryFactory.java:52)
at org.jongo.Find.<init>(Find.java:41)
at org.jongo.MongoCollection.find(MongoCollection.java:79)
at org.jongo.MongoCollection.find(MongoCollection.java:75)
Я старался
Iterator<MongoTest> all = db.getCollection("mongoTest").find(withOid(new ObjectId("5194d46bdda2de09c656b64b"))).as(MongoTest.class).iterator();
точно так же, как в документации, и я даже не могу заставить его скомпилировать... есть два возможных типа ObjectId.
de.undercouch.bson4jackson.types.ObjectId;
Говорит мне
The constructor ObjectId(String) is undefined
И если я использую
org.bson.types.ObjectId;
иногда кажется, что это работает лучше, но все равно говорит мне, что withOid( ObjectId )
не определено Что неудивительно, ведь именно к какому объекту должна относиться эта функция?
Мой вопрос: как мне найти _id в Jongo?
1 ответ
Решение
Кто-то помог мне найти ответ в другом месте, положив его сюда для потомков
Действительная конструкция для этого
db.getCollection("mongoTest")
.find("{ _id: # }", new ObjectId("5194d46bdda2de09c656b64b"))
.as(MongoTest.class);
С помощью org.bson.types.ObjectId
или же
db.getCollection("mongoTest")
.findOne(Oid.withOid("5194d46bdda2de09c656b64b"))
.as(MongoTest.class);`