MONGODB - найти на "_id" с JAVA

Я пытаюсь сделать этот запрос:

db.indexInverse.find({_id:ObjectId("5a153409b9c52933c8aab068")}).pretty()

с Java ...

на самом деле я пробую много вещей... но это не найти мой документ...

Document vraiDoc = collectionIndexInverse.find(Filters.eq("_id", new ObjectId("\"" + idDoc + "\""))).first();

ИЛИ ЖЕ

Bson query = (Bson) new BsonString("{ _id:ObjectId(\"" + idDoc + "\")}");
Document vraiDoc = collectionIndexInverse.find(query).first();

ИЛИ ЖЕ

Bson query = (Bson) new BsonString("{ _id:ObjectId(idDoc)}");
Document vraiDoc = collectionIndexInverse.find(query).first();

1 ответ

В вашей первой попытке двойные кавычки ObjectId значение.

Это будет работать:

Document vraiDoc = collectionIndexInverse.find(
    Filters.eq("_id", new ObjectId("5a153409b9c52933c8aab068"))
).first();

В более общем плане, учитывая эти документы:

{
    "_id" : ObjectId("59b86ff639f9ba0f9c0dccf6"),
    ...
},
{
    "_id" : ObjectId("59c0e662ac11a822d4e5da27"),
    ...
} 

Следующая команда вернет первый документ...

find(Filters.eq("_id", new ObjectId("59b86ff639f9ba0f9c0dccf6"))).first();

... и следующая команда вернет второй документ:

find(Filters.eq("_id", new ObjectId("59c0e662ac11a822d4e5da27"))).first();
Другие вопросы по тегам