在 mongoDB 中使用 InsertMany 和 ArrayList with<Object> springboot



是否可以对ArrayList使用insertMany?我实现了一个代码,但数据没有插入到集合中。

ObjectId logId = new ObjectId();
LogFile data =logfileRepo.save(new LogFile(String.valueOf(logId), fileName, now));

ArrayList<Object> listdata = new ArrayList<>();
if (arr != null) {
//Iterating JSON array
for (int i=0;i<arr.size();i++){
//Adding each element of JSON array into ArrayList
listdata.add(arr.get(i));
}
}
MongoClient mongo = new MongoClient(new 
MongoClientURI("mongodb+srv://rusiru:rus@cluster0.xemlu.mongodb.net/myFirstDatabase?retryWrites=true&w=majority"));
MongoDatabase database = mongo.getDatabase("LApp");
database.createCollection(String.valueOf(logId));
database.getCollection(String.valueOf(logId)).insertMany(listdata)

这里arr是一个jsonArray。

您需要将这些对象映射到MongoDB文档。

void insertMany(java.util.List<?扩展TDocument>文档(

使用一个库来为你做映射,比如Morphia,或者你可以这样做:

ObjectId logId = new ObjectId();
LogFile data =logfileRepo.save(new LogFile(String.valueOf(logId), fileName, now));
List<Document> documents = arr.stream()
.map(jsonStr -> Document.parse(jsonStr))
.collect(Collectors.toList());
MongoClient mongo = new MongoClient(new 
MongoClientURI("mongodb+srv://rusiru:rus@cluster0.xemlu.mongodb.net/myFirstDatabase?retryWrites=true&w=majority"));
MongoDatabase database = mongo.getDatabase("LApp");
database.createCollection(String.valueOf(logId));
database.getCollection(String.valueOf(logId)).insertMany(documents);

相关内容

最新更新