Mongo Java驅動程序3添加了對Codec infrastructure的支持,我在下面嘗試。默認情況下,它帶有以下3個對象的編解碼器:Document,BasicDBObject和BsonDocument。Mongo Java驅動程序3 - 使用擴展對象'Document'
我想通過讓我的類MyClass擴展Document來做一件很簡單的事情。但是,它會失敗並顯示內聯錯誤。
我發現這個gist但它似乎過於複雜..是否沒有簡單的方法註冊MyClass作爲一個編解碼器,因爲它也是一個文檔?
謝謝。 -henning
public class PlayMongo {
static class MyClass extends Document {
public MyClass(String key, Object value) {
super(key, value);
}
}
public static void main(String[] args) {
MongoClient mongoClient = new MongoClient();
MongoDatabase db = mongoClient.getDatabase("test");
// Works like a charm
MongoCollection<Document> documentCollection = db.getCollection("docs");
documentCollection.insertOne(new Document().append("hello", "world"));
// Fails with CodecConfigurationException: Can't find a codec for class play.reactivemongo.PlayMongo$MyClass
MongoCollection<MyClass> myClassCollection = db.getCollection("myclasses", MyClass.class);
myClassCollection.insertOne(new MyClass("hello", "world"));
}
}
這樣做..我喜歡它,因爲它很乾淨。謝謝丹尼爾! –