У меня есть набор идентификаторов документов, которые я ранее добавлял в MongoDB.Получить документ MongoDB по ID на Java
Затем я пытаюсь получить документ из ID.
String idString = "57f8f50977c8a5b8757f261a";
BasicDBObject whereQuery = new BasicDBObject();
whereQuery.put("_id", idString);
DBCursor cursor = table.find(whereQuery);
if(cursor.hasNext())
{
System.out.println("FOUND!" + cursor.next());
}
Я получаю нулевые результаты.
Но, если я звоню в другое поле Он работает и возвращает мне документ.
BasicDBObject whereQuery = new BasicDBObject();
whereQuery.put("datachain", "AA");
DBCursor cursor = table.find(whereQuery);
if(cursor.hasNext())
{
System.out.println("FOUND!" + cursor.next());
}
FOUND!{ "_id" : { "$oid" : "57f8f50977c8a5b8757f261b"} , "datachain" : "AA" , "createdDate" : { "$date" : "2016-10-08T13:30:49.588Z"}}
Что я делаю неправильно? Почему я не могу найти документ по ID? Thnx!
UPD: BasicDBObject whereQuery = new BasicDBObject(); whereQuery.put ("_ id", новый ObjectId ("57f8f50977c8a5b8757f261a")); DBCursor cursor = table.find (whereQuery);
То же самое, никакого результата не найдено.
Вам нужно, чтобы превратить ваш 'String' в [' ObjectId'] (https://docs.mongodb.com/manual/reference/method/ObjectId/). –