【问题标题】:MongoDB Java Inserting Throws Can't find a codec for class org.variabel.BsonDocumentMongoDB Java插入抛出找不到类org.variabel.BsonDocument的编解码器
【发布时间】:2017-03-02 06:23:42
【问题描述】:

我正在使用 Java 学习 MongoDB。我正在尝试使用 Java 驱动程序将数据插入 MongoDB。我将文档用于 org.jsoup.nodes.Document。所以我创建了扩展 org.bson.Document 的类 BsonDocument。 但我得到了错误:

找不到类 org.variabel.BsonDocument 的编解码器

这里是 org.variabel.BsonDocument 类:

import java.util.Map;
import org.bson.Document;
public class BsonDocument extends Document{
    public BsonDocument() {
        super();
    }

    public BsonDocument(Map<String, Object> map) {
        super(map);
    }

    public BsonDocument(String key, Object value){
        super(key, value);
    }
}

在另一个类中实现:

MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Now connect to your databases
MongoDatabase db = mongoClient.getDatabase("tes123");

BsonDocument document = new BsonDocument();

document.put("name", "Sony");
document.put("age", 30);
document.put("createdDate", new Date());
db.getCollection("tes123").insertOne(document);

【问题讨论】:

  • 为什么要创建一个新类 BsonDocument ?你能告诉我们你想要达到的目标吗?
  • org.bspn.Document 和 org.jsoup.nodes.Document 有两种数据类型 Document。我只是避免了他们之间的冲突。
  • 我的意思是 org.bson.Document

标签: java json mongodb


【解决方案1】:

我尝试了您的代码,只更改了一行,它运行正常。 这是我的版本

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;

import java.util.Date;

/**
 * @author Hanz
 * @date 2019/8/22
 */
public class testDocument {
    public static void main(String[] args){
        MongoClient mongoClient = new MongoClient("127.0.0.1",27017);   // i changed this 'localhost' to '127.0.0.1'
        MongoDatabase db = mongoClient.getDatabase("test");

        BsonDocument document = new BsonDocument();
        document.put("name", "Sony");
        document.put("age", 30);
        document.put("createdDate", new Date());
        db.getCollection("tes123").insertOne(document);
    }

}

另一个文件和你的一样,但以防万一,这是我的代码

import org.bson.Document;
import java.util.Map;
/**
 * @author Hanz
 * @date 2019/8/22
 */
public class BsonDocument extends Document {

    public BsonDocument() {
        super();
    }

    public BsonDocument(Map<String, Object> map) {
        super(map);
    }

    public BsonDocument(String key, Object value){
        super(key, value);
    }
}

您检查过您的 mongo 数据库是否有 db "test123" ? 希望你解决了这个问题或者这个答案可以帮助你:)

【讨论】:

    猜你喜欢
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 2017-04-07
    • 2018-11-01
    • 1970-01-01
    相关资源
    最近更新 更多