new BasicDBObject().append("$push", dbBasicListOfCars);
上記のステートメントでは、キーを「$push」、値を dbBasicListOfCars としてDBObjectにキーと値のペアを挿入しようとしています。MongoDB ではキーに「$」を使用できないため、失敗しています。
ただし、保存しようとしている方法も間違っています。
必要なのは、com.mongodb.BasicDBList です。これは、配列 DBObject を作成できるユーティリティ クラスです。BasicDBList は数字キーのみをサポートします。int に変換できない文字列を渡すと、IllegalArgumentException が発生します。
BasicDBList list = new BasicDBList();
list.put("1", "bar"); // ok
list.put("1E1", "bar"); // throws exception
参照: http://api.mongodb.org/java/current/com/mongodb/BasicDBList.html
注: MongoDB は、java.util.Lists からも配列を作成します。
DBObject obj = new BasicDBList();
obj.put( "0", value1 );
obj.put( "4", value2 );
obj.put( 2, value3 );
これは、DBObject { "0" : value1, "1" : null, "2" : value3, "3" : null, "4" : value2 } を作成して、配列 [ value1, null, value3, null, value2 ] をシミュレートします。 .