- 2024-02-18 09:35:40
- 4871 热度
- 0 评论
之前我们介绍的 MongoDB 的操作都是在 shell 命令中写的,在项目开发时我们当然都是用程序去操作 MongoDB 的,本文我们来看看如何用 Java 代码操作 MongoDB。
准备工作
首先我们需要驱动,MongoDB 的 Java 驱动我们可以直接在 Maven 中央仓库去下载,也可以创建 Maven 工程添加如下依赖:
1 |
<dependency> |
建议通过 Maven 来添加依赖,如果自己下载 jar,需要下载如下三个 jar:
- org.mongodb:bson:jar:3.5.0
- org.mongodb:mongodb-driver-core:jar:3.5.0
- org.mongodb:mongodb-driver:jar:3.5.0
另外,在使用 Java 操作 MongoDB 之前,记得启动 MongoDB 哦~
获取集合
所有准备工作完成之后,我们首先需要一个 MongoClient,如下:
1 |
MongoClient client = new MongoClient("192.168.248.136", 27017); |
然后通过如下方式获取一个数据库,如果要获取的数据库本身就存在,直接获取到,不存在 MongoDB 会自动创建:
1 |
MongoDatabase sang = client.getDatabase("sang"); |
然后通过如下方式获取一个名为c1的集合,这个集合存在的话就直接获取到,不存在的话 MongoDB 会自动创建出来,如下:
1 |
MongoCollection<Document> c = sang.getCollection("c1"); |
有了集合之后,我们就可以向集合中插入数据了。
增
和在 shell 中的操作一样,我们可以一条一条的添加数据,也可以批量添加,添加单条数据操作如下:
1 |
Document d1 = new Document(); |
添加多条数据的操作如下:
1 |
List<Document> collections = new ArrayList<Document>(); |
改
可以修改查到的第一条数据,操作如下:
1 |
c.updateOne(Filters.eq("author", "罗贯中"), new Document("$set", new Document("name", "三国演义123"))); |
上例中小伙伴们也看到了修改器要如何使用,不管是 $set 还是 $inc,用法都一致,我这里不再一个一个演示。也可以修改查到的所有数据,如下:
1 |
c.updateMany(Filters.eq("author", "罗贯中"), new Document("$set", new Document("name", "三国演义456"))); |
删
可以删除查到的一条数据,如下:
1 |
c.deleteOne(Filters.eq("author", "罗贯中")); |
也可以删除查到的所有数据:
1 |
c.deleteMany(Filters.eq("author", "罗贯中")); |
Filters 里边还有其他的查询条件,都是见名知意,不赘述。
查
可以直接查询所有文档:
1 |
FindIterable<Document> documents = c.find(); |
也可以按照条件查询:
1 |
FindIterable<Document> documents = c.find(Filters.eq("author", "罗贯中")); |
其他的方法基本都是见名知意,这里不再赘述。
验证问题
上面我们演示的获取一个集合是不需要登录 MongoDB 数据库的,如果需要登录,我们获取集合的方式改为下面这种:
1 |
ServerAddress serverAddress = new ServerAddress("192.168.248.128", 27017); |
MongoCredential 是一个凭证,第一个参数为用户名,第二个参数是要在哪个数据库中验证,第三个参数是密码的 char 数组,然后将登录地址封装成一个 ServerAddress,最后将两个参数都传入 MongoClient 中实现登录功能。
其他配置
在连接数据库的时候也可以设置连接超时等信息,在MongoClientOptions中设置即可,设置方式如下:
1 |
ServerAddress serverAddress = new ServerAddress("192.168.248.128", 27017); |
好了,Java 操作 MongoDB 我们就先说到这里,小伙伴们有问题欢迎留言讨论。
参考资料:
- 《MongoDB权威指南第2版》
- Spring(403)
- Boot(208)
- Spring Boot(187)
- Java(82)
- Cloud(82)
- Spring Cloud(82)
- Security(60)
- Spring Security(54)
- Boot2(51)
- Spring Boot2(51)
- Redis(31)
- SQL(29)
- Mysql(25)
- IDE(24)
- Dalston(24)
- JDBC(22)
- IDEA(22)
- mongoDB(22)
- MVC(22)
- Web(21)
- CLI(20)
- Alibaba(19)
- SpringMVC(19)
- SpringBoot(17)
- Docker(17)
- Git(16)
- Eclipse(16)
- Vue(16)
- ORA(15)
- JPA(15)
- Apache(15)
- Mybatis(14)
- Oracle(14)
- jdk(14)
- Tomcat(14)
- Linux(14)
- HTTP(14)
- XML(13)
- JdbcTemplate(13)
- OAuth(13)
- Nacos(13)
- Pro(13)
- Data(12)
- JSON(12)
- OAuth2(12)
- stream(11)
- int(11)
- Myeclipse(11)
- not(10)
- Bug(10)
- maven(9)
- Map(9)
- Hystrix(9)
- ast(9)
- APP(8)
- Bit(8)
- API(8)
- session(8)
- Window(8)
- Swagger(8)
- Github(7)
- JavaMail(7)
- Cache(7)
- File(7)
- mail(7)
- IntelliJ(7)
- windows(7)
- too(7)
- HTML(7)
- RabbitMQ(6)
- star(6)
- and(6)
- Excel(6)
- Log4J(6)
- pushlet(6)
- apt(6)
- read(6)
- Freemarker(6)
- WebFlux(6)
- JSP(6)
- Bean(6)
- error(6)
- nginx(6)
- Server(6)
- ueditor(6)
- jar(6)
- ehcache(6)
- UDP(6)
- rdquo(5)
- PHP(5)
- Struts(5)
- string(5)
- Syntaxhighlighter(5)
- script(5)
- Tool(5)
- Controller(5)
- swagger2(5)
- ldquo(5)
- input(5)
- Servlet(5)