java 操作mongodb_Java操作MongoDB

之前我们介绍的MongoDB的操作都是在shell命令中写的,在项目开发时我们当然都是用程序去操作MongoDB的,本文我们来看看如何用Java代码操作MongoDB。

本文是MongoDB系列的第十九篇文章,了解前面的文章有助于更好的理解本文:

准备工作

首先我们需要驱动,MongoDB的Java驱动我们可以直接在Maven中央仓库去下载,也可以创建Maven工程添加如下依赖:

org.mongodb

mongodb-driver

3.5.0

建议通过Maven来添加依赖,如果自己下载jar,需要下载如下三个jar:

1.org.mongodb:bson:jar:3.5.0

2.org.mongodb:mongodb-driver-core:jar:3.5.0

3.org.mongodb:mongodb-driver:jar:3.5.0

另外,在使用Java操作MongoDB之前,记得启动MongoDB哦~

获取集合

所有准备工作完成之后,我们首先需要一个MongoClient,如下:

MongoClient client = new MongoClient("192.168.248.136", 27017);

然后通过如下方式获取一个数据库,如果要获取的数据库本身就存在,直接获取到,不存在MongoDB会自动创建:

MongoDatabase sang = client.getDatabase("sang");

然后通过如下方式获取一个名为c1的集合,这个集合存在的话就直接获取到,不存在的话MongoDB会自动创建出来,如下:

MongoCollection c = sang.getCollection("c1");

有了集合之后,我们就可以向集合中插入数据了。

和在shell中的操作一样,我们可以一条一条的添加数据,也可以批量添加,添加单条数据操作如下:

Document d1 = new Document();

d1.append("name", "三国演义").append("author", "罗贯中");

c.insertOne(d1);

添加多条数据的操作如下:

List collections = new ArrayList();

Document d1 = new Document();

d1.append("name", "三国演义").append("author", "罗贯中");

collections.add(d1);

Document d2 = new Document();

d2.append("name", "红楼梦").append("author", "曹雪芹");

collections.add(d2);

c.insertMany(collections);

可以修改查到的第一条数据,操作如下:

c.updateOne(Filters.eq("author", "罗贯中"), new Document("$set", new Document("name", "三国演义123")));

上例中小伙伴们也看到了修改器要如何使用,不管是$set还是$inc,用法都一致,我这里不再一个一个演示。也可以修改查到的所有数据,如下:

c.updateMany(Filters.eq("author", "罗贯中"), new Document("$set", new Document("name", "三国演义456")));

可以删除查到的一条数据,如下:

c.deleteOne(Filters.eq("author", "罗贯中"));

也可以删除查到的所有数据:

c.deleteMany(Filters.eq("author", "罗贯中"));

Filters里边还有其他的查询条件,都是见名知意,不赘述。

可以直接查询所有文档:

FindIterable documents = c.find();

MongoCursor iterator = documents.iterator();

while (iterator.hasNext()) {

System.out.println(iterator.next());

}

也可以按照条件查询:

FindIterable documents = c.find(Filters.eq("author", "罗贯中"));

MongoCursor iterator = documents.iterator();

while (iterator.hasNext()) {

System.out.println(iterator.next());

}

其他的方法基本都是见名知意,这里不再赘述。

验证问题

上面我们演示的获取一个集合是不需要登录MongoDB数据库的,如果需要登录,我们获取集合的方式改为下面这种:

ServerAddress serverAddress = new ServerAddress("192.168.248.128", 27017);

List credentialsList = new ArrayList();

MongoCredential mc = MongoCredential.createScramSha1Credential("readuser","sang","123".toCharArray());

credentialsList.add(mc);

MongoClient client = new MongoClient(serverAddress,credentialsList);

MongoDatabase sang = client.getDatabase("sang");

c = sang.getCollection("c1");

MongoCredential是一个凭证,第一个参数为用户名,第二个参数是要在哪个数据库中验证,第三个参数是密码的char数组,然后将登录地址封装成一个ServerAddress,最后将两个参数都传入MongoClient中实现登录功能。

其他配置

在连接数据库的时候也可以设置连接超时等信息,在MongoClientOptions中设置即可,设置方式如下:

ServerAddress serverAddress = new ServerAddress("192.168.248.128", 27017);

List credentialsList = new ArrayList();

MongoCredential mc = MongoCredential.createScramSha1Credential("rwuser","sang","123".toCharArray());

credentialsList.add(mc);

MongoClientOptions options = MongoClientOptions.builder()

//设置连接超时时间为10s

.connectTimeout(1000*10)

//设置最长等待时间为10s

.maxWaitTime(1000*10)

.build();

MongoClient client = new MongoClient(serverAddress,credentialsList,options);

MongoDatabase sang = client.getDatabase("sang");

c = sang.getCollection("c1");

好了,Java操作MongoDB我们就先说到这里,小伙伴们有问题欢迎留言讨论。

参考资料:

1.《MongoDB权威指南第2版》

更多资料请关注公众号:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Java操作MongoDB数据库,需要使用MongoDBJava驱动程序。以下是使用Java操作MongoDB数据库的基本步骤: 1. 导入MongoDBJava驱动程序。 2. 创建MongoClient实例,该实例表示MongoDB数据库服务器的连接。 3. 获取MongoDatabase实例,该实例表示MongoDB数据库。 4. 获取MongoCollection实例,该实例表示MongoDB集合。 5. 使用MongoCollection实例执行CRUD操作。 下面是一个示例代码,演示如何使用Java操作MongoDB数据库: ```java import com.mongodb.MongoClient; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; public class MongoDBExample { public static void main(String[] args) { // 创建MongoClient实例,连接MongoDB服务器 MongoClient mongoClient = new MongoClient("localhost", 27017); // 获取MongoDatabase实例,连接到指定的数据库 MongoDatabase database = mongoClient.getDatabase("myDatabase"); // 获取MongoCollection实例,连接到指定的集合 MongoCollection<Document> collection = database.getCollection("myCollection"); // 插入文档 Document document = new Document("name", "John Doe") .append("age", 30) .append("gender", "male"); collection.insertOne(document); // 查询文档 Document query = new Document("name", "John Doe"); Document result = collection.find(query).first(); System.out.println(result); // 更新文档 Document filter = new Document("name", "John Doe"); Document update = new Document("$set", new Document("age", 31)); collection.updateOne(filter, update); // 删除文档 collection.deleteOne(filter); // 关闭MongoClient实例 mongoClient.close(); } } ``` 在上面的示例代码中,我们使用MongoDBJava驱动程序来连接到MongoDB数据库,获取MongoDB集合,并执行插入、查询、更新和删除操作。 需要注意的是,由于MongoDBJava驱动程序不包含在Java SDK中,因此需要手动导入MongoDBJava驱动程序库。例如,如果使用Maven构建Java项目,则需要在pom.xml文件中添加以下依赖项: ```xml <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.12.7</version> </dependency> ``` 这样就可以使用MongoDBJava驱动程序来连接、查询和操作MongoDB数据库了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值