Java连接 MongoDB 实现增删改查的完整攻略如下:
环境准备
- MongoDB 安装:在 MongoDB 官网下载相应版本的 MongoDB,根据提示完成安装操作并启动 MongoDB 服务。
- Java 驱动安装:在 Maven 仓库中下载 MongoDB 的 Java 驱动。在 pom.xml 中添加如下依赖:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.12.6</version>
</dependency>
连接 MongoDB
使用 MongoClient 类连接 MongoDB。在连接之前,需要确定 MongoDB 数据库的连接地址、端口号、数据库名称和鉴权信息(如果有)。
String host = "localhost";
int port = 27017;
String dbName = "test";
String username = "user";
String password = "password";
MongoCredential credential = MongoCredential.createCredential(username, dbName, password.toCharArray());
ServerAddress serverAddress = new ServerAddress(host, port);
MongoClientOptions options = MongoClientOptions.builder().build();
MongoClient mongoClient = new MongoClient(serverAddress, credential, options);
MongoDatabase database = mongoClient.getDatabase("test");
插入数据
插入数据使用 MongoClient 类的 insertOne() 方法,该方法将包含要插入数据的文档对象插入到指定的集合中。
MongoCollection<Document> collection = database.getCollection("users");
Document document = new Document();
document.append("name", "Jack");
document.append("age", 30);
collection.insertOne(document);
查询数据
查询数据使用 find() 方法。find() 方法返回一个文档迭代器,可以使用它来遍历返回的所有文档。
// 查询所有文档
MongoCursor<Document> cursor = collection.find().iterator();
try {
while (cursor.hasNext()) {
Document doc = cursor.next();
System.out.println(doc.toJson());
}
} finally {
cursor.close();
}
// 查询指定文档
Document query = new Document();
query.append("name", "Jack");
Document result = collection.find(query).first();
if (result != null) {
System.out.println(result.toJson());
}
更新数据
更新数据使用 updateOne() 方法。updateOne() 方法接收两个参数,第一个参数为要更新的文档的查询条件,第二个参数为更新后的数据。
Document filter = new Document();
filter.append("name", "Jack");
Document update = new Document();
update.append("$set", new Document("age", 31));
UpdateResult result = collection.updateOne(filter, update);
System.out.println(result.getModifiedCount());
删除数据
删除数据使用 deleteOne() 或 deleteMany() 方法。deleteOne() 方法删除第一个匹配的文档,deleteMany() 方法删除所有匹配的文档。
Document filter = new Document();
filter.append("name", "Jack");
DeleteResult result = collection.deleteOne(filter);
System.out.println(result.getDeletedCount());
示例解析
示例一:向 users 集合中插入一条文档
Document document = new Document();
document.append("name", "Jack");
document.append("age", 30);
collection.insertOne(document);
此示例向 users 集合中插入了一条文档,该文档包含 name 和 age 两个字段。如果用户集合不存在,则 MongoDB 会自动创建该集合。
示例二:更新 users 集合中 name 为 Jack 的文档
Document filter = new Document();
filter.append("name", "Jack");
Document update = new Document();
update.append("$set", new Document("age", 31));
UpdateResult result = collection.updateOne(filter, update);
System.out.println(result.getModifiedCount());
此示例更新 users 集合中 name 为 Jack 的文档的 age 字段为 31。如果成功更新一条文档,会返回一个 UpdateResult 对象,其中包含更新的文档数量等信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java连接Mongodb实现增删改查 - Python技术站