簡體   English   中英

如何在MongoDB集合中保存包含對象列表的對象

[英]How to save an Object containing List of Objects in MongoDB collection

我有一個名為Status的Java類,它包含3個字段,即:字符串電子郵件,字符串狀態,ArrayList(Comment)commentList。 Comment是另一個由2個String字段組成的Java類。 我已經使用MySQL,並且我知道如何將這個Status對象保存在數據庫表中。 現在我正在學習MongoDB,我需要此Status對象存儲在我的數據庫集合中。 我該怎么做? 到目前為止,我嘗試了以下操作,但無法存儲Status對象。 有人可以幫我嗎? 我嘗試了以下方法:

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@gmail.com"));
    commentList.add(new Comment("This is a nice status", "email@gmail.com"));


    Status status = new Status();
    status.setStatus("This is my new Status");
    status.setEmail("email@gmail.com");


    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.

mongo.getDB已貶值。 使用以下內容創建數據庫。 確保也導入bson。

MongoClient mongo = new MongoClient("localhost", 27017);        
MongoDatabase db = mongo.getDatabase("myDB"); 
MongoCollection items = db.getCollection("myCollection");

Document document = new Document();  // Create the document to be inserted to the DB
document.put("First Name", "John");
document.put("Last Name", "Smith");

items.insertOne(document);  // Insert document to DB

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM