1

我正在尝试将包含 JSONS 的单个 ArrayList 插入到 mongodb 集合中,

MongoClient mongo = new MongoClient("localhost", 27017);
DB db = mongo.getDB("structure");
DBCollection collection = db.getCollection("chapter");
List<Document> data = new ArrayList<>();
collection.insertMany(data);
String str = "[{\"id\":1,\"data\":\"data1\"},{\"id\":2,\"data\":\"data2\"}]";
DBObject dbObject = (DBObject) JSON.parse(str);
collection.insert(dbObject);

但我得到了例外,

线程“主”java.lang.IllegalArgumentException 中的异常:BasicBSONList 只能使用数字键,而不是:[_id]

谁能告诉我正确的方法来做到这一点?

插入 ArrayList mongodb 上面的问题是关于 JSONS 的批量插入,而不是单个的。我的问题很独特

4

2 回答 2

2

该异常提示了问题所在:列表不能用作记录(或类似地图的数据结构)。

要引用有关组成集合的文档的 MongoDB 文档:

文件结构

MongoDB 文档由字段-值对组成,具有以下结构:

{
   field1: value1,
   field2: value2,
   field3: value3,
   ...
   fieldN: valueN
}

因此,在您的情况下,因为您只想在一次调用中插入许多文档,所以您需要做的是使用collection.insertMany

List<Document> documents = ...; //convert your list to a List<Document>
collection.insertMany(documents);
于 2019-05-01T08:00:29.607 回答
1

看看这个

https://docs.mongodb.com/manual/reference/method/db.collection.insertMany/

List<DBobject> data = new ArrayList<>();
Colletions.insertMany(data);
于 2019-05-01T08:28:50.543 回答