1、使用Maven依赖相应jar

<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>3.9.1</version>
</dependency>

2、获取客户端

  MongoClient mongoClient = MongoClients.create();// 获取本地默认端口的mongoDB服务

3、获取数据库

  MongoDatabase database = mongoClient.getDatabase("mongodb_test");

4、获取表

  MongoCollection coll = database.getCollection("member");

5、针对表的CRUD操作

  1)新增

    Document doc = new Document("name", "MongoDB")
      .append("type", "database")
      .append("count", 1)
      .append("versions", Arrays.asList("v3.2", "v3.0", "v2.6"))
      .append("info", new Document("x", 203).append("y", 102));
    coll.insertOne(doc);

  2)查询

    FindIterable<Document> results = coll.find();
    for (Document result : results) {
      System.out.println(result.getString("name"));
    }

  3)修改

    UpdateResult result = coll.updateMany(eq("name", "MongoDB Michael"), new Document("$set", new Document("name", "MongoDB")));
    System.out.println(result.getModifiedCount());

  4)删除

    DeleteResult result = coll.deleteMany(eq("type", "database"));
    System.out.println(result.getDeletedCount());

6、删除表

  coll.drop();

7、基于POJO的操作

  需要设置CodecRegistry,能够让对象与BSON互相转化

  比如:Member对象

@Data
public class Member {
private ObjectId id;
private String name;
private int age;
private String addr;
}
CodecProvider pojoCodecProvider = PojoCodecProvider.builder().register(Member.class).build();
CodecRegistry pojoCodecRegistry = fromRegistries(
fromCodecs(new StringCodec(),new IntegerCodec(),new ObjectIdCodec()) // 需要针对对象中的类型设置Codec
, fromProviders(pojoCodecProvider));

CodecRegistry
  1)可以设置到MongoClient
    MongoClientSettings settings = MongoClientSettings.builder().codecRegistry(pojoCodecRegistry).build();
    MongoClient mongoClient = MongoClients.create(settings);

  2)可以设置到数据库
    database = database.withCodecRegistry(pojoCodecRegistry);
  3)可以设置到表
    collection = collection.withCodecRegistry(pojoCodecRegistry);

基于POJO的CRUD操作
1)新增
 
 Member member = new Member();
  member.setName("Michael");
  member.setAge(30);
  member.setAddr("SZ");

  coll.insertOne(member);

2)查询
  FindIterable<Member> results = coll.find();
  for (Member result : results) {
  System.out.println(result);
  }
3)修改
  UpdateResult result = coll.updateMany(eq("age",30),set("age",18));
  System.out.println(result);
4)删除数据
  DeleteResult result = coll.deleteMany(eq("name","Michael"));
  System.out.println(result);
5)删除表
  coll.drop();

最新文章

  1. [shell基础]——read命令
  2. poj 2528 Mayor&#39;s posters(线段树)
  3. 【高斯消元】BZOJ 1770: [Usaco2009 Nov]lights 燈
  4. If-Modified-Since &amp; If-None-Match
  5. POJ 2155 Matrix (D区段树)
  6. 【SQL】- 基础知识梳理(六) - 游标
  7. 关于String中的不变模式
  8. 深度学习 Fine-tune 技巧总结
  9. mysql导入太慢解决方法
  10. Vc数据库编程基础MySql数据库的表查询功能
  11. Vue.js 系列教程 1:渲染,指令,事件
  12. 【微信公众号开发】【10】JSJDK相关
  13. 微软Power BI报表服务器学习总览
  14. sphinx搜索 笔记
  15. 【Socket】linux下http服务器开发
  16. ASP.NET学习笔记(1)——VS自动引入命名空间快捷键
  17. SWT开发工具
  18. Teamwork(The second day of the team)
  19. Oracle监听配置、数据库实例配置等
  20. FairyGUI学习

热门文章

  1. pytest - 失败重运行机制:rerun
  2. VAE变分自编码器实现
  3. deepstream-开放式实时服务器
  4. python_pycham,连接数据库,执行sql
  5. 源码学习之noop
  6. cisco交换机端口从errdisable状态恢复
  7. 『无为则无心』Python基础 — 12、Python运算符详细介绍
  8. Go语言十进制转二进制字符串
  9. kubelet分析-csi driver注册源码分析
  10. 5.1 万 Star!不用 root 就能连接控制安卓的开源工具