在 mongoDB 中使用带有 ArrayList<Object> 的 InsertMany 和 spring boot
Using InsertMany with ArrayList<Object> in mongoDB with 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<? extends TDocument> documents)
使用可以为您进行映射的库,例如 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);
是否可以对 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<? extends TDocument> documents)
使用可以为您进行映射的库,例如 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);