写一个springboot框架适用的mongodb工具类
时间: 2023-07-25 22:07:25 浏览: 101
springboot结合mongodb
好的,以下是一个适用于Spring Boot框架的MongoDB工具类:
```java
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Component
public class MongoUtil {
@Autowired
private MongoTemplate mongoTemplate;
/**
* 插入一条记录
* @param collectionName 集合名称
* @param document 插入的文档
*/
public void insert(String collectionName, Document document) {
MongoCollection<Document> collection = mongoTemplate.getCollection(collectionName);
collection.insertOne(document);
}
/**
* 插入多条记录
* @param collectionName 集合名称
* @param documents 插入的文档列表
*/
public void insertBatch(String collectionName, List<Document> documents) {
MongoCollection<Document> collection = mongoTemplate.getCollection(collectionName);
collection.insertMany(documents);
}
/**
* 根据条件查询记录列表
* @param collectionName 集合名称
* @param filter 查询条件
* @return 记录列表
*/
public List<Document> find(String collectionName, Document filter) {
List<Document> result = new ArrayList<>();
MongoCollection<Document> collection = mongoTemplate.getCollection(collectionName);
MongoCursor<Document> cursor = collection.find(filter).iterator();
while (cursor.hasNext()) {
result.add(cursor.next());
}
return result;
}
/**
* 更新一条记录
* @param collectionName 集合名称
* @param filter 查询条件
* @param update 更新文档
* @return 更新的记录数
*/
public long update(String collectionName, Document filter, Document update) {
MongoCollection<Document> collection = mongoTemplate.getCollection(collectionName);
UpdateResult result = collection.updateOne(filter, new Document("$set", update));
return result.getModifiedCount();
}
/**
* 删除一条记录
* @param collectionName 集合名称
* @param filter 查询条件
* @return 删除的记录数
*/
public long delete(String collectionName, Document filter) {
MongoCollection<Document> collection = mongoTemplate.getCollection(collectionName);
DeleteResult result = collection.deleteOne(filter);
return result.getDeletedCount();
}
}
```
在这个工具类中,我们注入了MongoTemplate,用于创建MongoDB连接并进行操作。在工具类中提供了插入、查询、更新和删除的方法,可以根据需要进行调用。
注意,在使用该工具类之前,需要先在Spring Boot项目中引入MongoDB的依赖,并在application.properties中配置好MongoDB的连接信息。
阅读全文