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();