【发布时间】:2017-07-14 15:01:51
【问题描述】:
无法从 MongoDB 读取 blob(二进制)记录,我使用的是 Java 3.4.2 驱动程序。
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");
提前感谢您! 婆罗洲
【问题讨论】:
-
实际上在
Binary类型上定义了一个.getData()方法。这当然会返回byte[],因此无需尝试强制进行此类转换。只要使用正确的方法。
标签: java mongodb mongodb-java