2017-08-09 7 views
1

私は文書をmongoデータベースのコレクションに保存しています。私はすでに文書にある2つの配列に追加できるようにしたい。JavaでMongoDBの配列に値を追加する

文書と配列を作成するための方法:私は、配列に値を追加したい

public void addNewListName(String listName) { 

    MongoCollection<Document> collection = database.getCollection("lists"); 

    ArrayList<DBObject> array = new ArrayList<DBObject>(); 
    Document list = new Document ("name", listName) 
      .append("terms", array) 
      .append("definitions", array); 
    collection.insertOne(list); 
} 

は方法:

public void addVocabToList(String listName, String newVocabTerm, String newDefinition) { 

} 

The picture shows what the document looks like in MongoDB Compass after the first method is executed

画像は、文書がどのように見えるかを示してい最初のメソッドが実行された後のMongoDB Compassのコンパイル

答えて

1

あなたaddVocabToList()実装は次のようになります。

MongoCollection<Document> collection = database.getCollection("lists"); 

Document updatedDocument = collection.findOneAndUpdate(
    Filters.eq("name", listName), 
    new Document("$push", 
     new BasicDBObject("terms", new BsonString(newVocabTerm)) 
      .append("definitions", new BsonString(newDefinition))), 
     new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)); 

このコードは以下となります。

  • 文書持つ名を探す= listName
  • terms配列にnewVocabTermの値を追加し
  • newDefinitionという値をdefinitionsの配列に追加します。
  • 更新されたドキュメントを返します(この部分はオプションです)
+0

完全に動作します。どうもありがとうございます! – KobiF

関連する問題