我有一组以前在MongoDB中添加的文档ID。
然后,我尝试从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查找文档?
谢谢!
UPD:
BasicDBObject whereQuery = new BasicDBObject();
whereQuery.put(“ _ id”,new ObjectId(“ 57f8f50977c8a5b8757f261a”));
DBCursor游标= table.find(whereQuery);
一样,没有结果。
最佳答案
您必须将idString作为ObjectId
传递。
whereQuery.put("_id", new ObjectId(idString));