2016-10-08 6 views
1

私は以前にMongoDBに追加した一連のIDを持っています。JavaでIDでMongoDB文書を取得

私は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);

同じものはありません。

+1

あなたの 'String'を' 'ObjectId'](https://docs.mongodb.com/manual/reference/method/ObjectId/)にする必要があります。 –

答えて

1

idStringをObjectIdとして渡す必要があります。

whereQuery.put("_id", new ObjectId(idString)); 
関連する問題