我有一个名为Status的Java类,它由3个字段组成:字符串电子邮件,字符串状态,ArrayList(评论)commentList。 Comment是由2个字符串字段组成的另一个Java类。我曾与MySQL合作过,并且我知道如何将这个Status对象保存在数据库表中。现在我正在学习MongoDB,我需要这个Status对象来存储在我的数据库集合中。我该怎么做?截至目前,我已经尝试了以下内容并未能存储状态对象。任何人都可以帮我一下吗? 我曾尝试以下:如何在MongoDB集合中保存包含对象列表的对象
public static MongoClient getMongoConnection() {
MongoClient mongo = null;
try {
mongo = new MongoClient("localhost", 27017);
} catch (Exception e) {
e.printStackTrace();
}
return mongo;
}
public static void main(String[] args) {
MongoClient mongo = getMongoConnection();
DB db = mongo.getDB("myTestdatabase");
DBCollection myReviews = db.getCollection("myStatus");
BasicDBObject obj = new BasicDBObject();
List<Object> commentList = new BasicDBList();
commentList.add(new Comment("Looks like a nice status", "[email protected]"));
commentList.add(new Comment("This is a nice status", "[email protected]"));
Status status = new Status();
status.setStatus("This is my new Status");
status.setEmail("[email protected]");
obj.put("status", status.getStatus());
obj.put("email", status.getEmail());
obj.put("comments", commentList);
myReviews.insert(obj);
}
我得到这个错误。
org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class com.Comment.
你会得到什么错误? – Veeram
org.bson.codecs.configuration.CodecConfigurationException:找不到类com.Comment的编解码器。 –
MongoDB只能处理Bson类型。而不是将注释对象添加到dbList。从每条评论中创建一个dbobject并将它们添加到列表中,就像您对状态对象所做的一样。 – Veeram