使用JAVA如何读取存储在mongodb里面_data字段的二进制消息内容,如下是我的代码片段
public static void main(String[] args) {
MongoClient mongoClient = MongoClients.create("mongodb://127.0.0.1:27017");
MongoDatabase database = mongoClient.getDatabase("wfchat");
MongoCollection<Document> collection = database.getCollection("t_messages_0");
FindIterable<Document> documents = collection.find();
for (Document doc : documents) {
Binary bin = doc.get("_data", Binary.class);
byte[] bytes = bin.getData();
System.out.println(doc.toJson());
System.out.println(bytes);
}
mongoClient.close(); // 在应用程序结束时关闭连接。
}
打印的内容如下,
{"_id": 468869501027352705, "_from": "MandayNoticeRobot", "_type": 0, "_target": "00000000000001", "_line": 0, "_data": {"$binary": {"base64": "COsHEkJ7InVzZXJJZCI6IjAwMDAwMDAwMDAwMDAzMzUzMCIsInZpZXdTdGF0dXMiOiJOIiwibWVzc2FnZVVpZCI6bnVsbH0aHuS9oOeahOW3peS9nOaXpeaKpeaaguacquWhq+WGmTAAQANIAFAAakJ7InVzZXJJZCI6IjAwMDAwMDAwMDAwMDAzMzUzMCIsInZpZXdTdGF0dXMiOiJOIiwibWVzc2FnZVVpZCI6bnVsbH0=", "subType": "00"}}, "_content_type": 1003, "_dt": {"$date": "2025-01-31T08:00:00.438Z"}, "_searchable_key": "{\"userId\":\"0000000000001\",\"viewStatus\":\"N\",\"messageUid\":null}"}
[B@6a0ac48e