私はscalaが新しく、カスタムBsonDocumentを作成しようとしています。私が文書hereを読んでいる限り、内部でput
メソッドを呼び出すこのメソッドappend(String key, BsonValue value)
があり、私はそれを使用しようとしています。Scala/Java BsonDocumentが正しく動作しません。
2つ以上のフィールドを追加すると、最後の2つだけが追加されるという問題があります。たとえば、私はこのようなコードがある場合:あなたが見ることができるように
The Bson user is { "$set" : { "color" : "teal" }, "$addToSet" : { "accounts" : { "$each" : ["1"] } } }
、ユーザ名が追加されていない。この場合
var doc = new BsonDocument();
val mapAccounts = user.accounts.map(e => new BsonString(e))
doc.append("$set", new BsonDocument("userName", new BsonString(user.userName)))
.append("$set", new BsonDocument("color", new BsonString(user.color)))
.append("$addToSet", new BsonDocument("accounts", new BsonDocument("$each", new BsonArray(mapAccounts.toList.asJava))))
println(s"The Bson user is $doc")
を、私のような出力が得られます。そして、もし私が注文を変更すると、最後の2つの要素が繰り返されます。
私は既にput
を直接使用しようとしましたが、同じ結果が得られました。 doc = doc.append(...)
のように個別に追加しようとしましたが、依然として同じです。
私はここで何が欠けていますか?