![](/img/trans.png)
[英]MongoDB Java Driver: MongoCore Driver vs. MongoDB Driver vs. MongoDB Async Driver
[英]Mongodb Async vs Sync Java driver
我對 Mongodb 的 java 驅動程序感到很困惑。閱讀官方文檔,您似乎可以使用普通的 MondoDB 驅動程序或 MongoDB 異步驅動程序。
第一個問題是:我可以在同一個應用程序中同時使用兩者還是必須選擇一個?
嘗試使用 Async 驅動程序時,我發現我以前(使用普通驅動程序)做的事情現在有點迷路了。 例如,我曾經這樣做:
FindIterable<Document> iterable = db.getCollection("my_coll").find(query);
String json = JSON.serialize(iterable);
現在我真的不知道如何將結果轉換為 json 字符串,因為它們沒有包含異步驅動程序中的JSON
class。 第二個問題:如果我不能同時使用兩個驅動程序,我該如何序列化FindIterable<Document>
?
答案是:
JSON
類: JSON.serialize(iterable);
需要注意的一件事是這兩個驅動程序共享一些依賴項。 嘗試對齊驅動程序的版本,以便它們都期望相同版本的共同依賴項,否則您可能會遇到一些“未找到類”類型的問題,這是由於 class 加載程序為一個或一個選擇了 class 的不兼容版本而導致的其他司機。
我要補充一點,我發現異步驅動程序非常適合的用例是大型導出樣式查詢,我必須從 web 服務返回大量數據。 在這種情況下,我必須返回一個大的 CSV。以前,此方法會占用大量 RAM,在將其寫入客戶端之前構建整套 CSV 數據。 使用異步驅動程序,我可以從 MongoDB 讀取小批量(一次 500 條記錄似乎是最佳的),並將它們以分塊響應的形式寫入瀏覽器客戶端。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.