Java 3.4.2ドライバを使用してMongoDBからblob(バイナリ)レコードを読み取ることができません。Javaを使用してmongodbからblob(バイナリ)データを読み取る際にエラーが発生しました。
BasicDBObject whereClause = new BasicDBObject();
List<BasicDBObject> obj = new ArrayList<BasicDBObject>();
obj.add(new BasicDBObject("blobcontentid", "20160601201035069394000000"));
whereClause.put("$and", obj);
MongoCursor<Document> cursor = contentcollection.find(whereClause).iterator();
while (cursor.hasNext()) {
Document object = cursor.next();
System.out.println(object.getString("blobcontentid"));
if (object.get("content") != null){
byte[] content = (byte []) object.get("content");
} else {
System.out.println("Content is empty");
}
}
エラー:java.lang.ClassCastExceptionが:org.bson.types.Binaryは[B
同じレコードにキャストすることはできませんが、DB2では次のように読んでいます。 byte [] content = aResult.getBytes( "CONTENT");
ありがとうございます! Bharathi
実際には、「バイナリ」で定義された['.getData()'](http://api.mongodb.com/java/current/org/bson/types/Binary.html#getData--)メソッドがあります。 'タイプ。どちらがもちろん 'byte [] 'を返すので、そのようなキャストを強制する必要はありません。ちょうど正しい方法を使用してください。 –