Java连接MongoDB CRUD操作案例

1、导入驱动

导入MongoDB JDBC 驱动 下载链接

导入测试相关jar包

  • juit-4.12.jar

  • hamcrest-.2.2.jar

2、建立连接

下面的示例显示了连接到本地计算机上的数据库的五种方法。如果数据库不存在,MongoDB 将为你创建它。

  1. 这里的 “localhost” 表示连接的服务器地址,27017 为端口号
MongoClient mongoClient = new MongoClient("localhost", 27017);
  1. 可以省略 端口号 不写,系统将默认端口号为 27017
MongoClient mongoClient = new MongoClient( "localhost" );
  1. 也可以将 服务器地址 和 端口号 都省略,系统默认服务器地址为 “localhost”,端口号为 27017
MongoClient mongoClient = new MongoClient();
  1. 指定MongoClinetURI 连接字符串
MongoClientURI connectionString = new MongoClientURI("mongodb://localhost:27017");
MongoClient mongoClient = new MongoClient(connectionString);

3、访问数据库

使用MongoClient里的getDatabase() 方法访问数据库。如果数据库不存在,MongoDB 会在首次存储该数据库数据时创建该数据库。

MongoDatabase db = mongoClient.getDatabase("stuTest");

4、访问集合

使用MongoDatabase里的getCollection()方法访问集合。如果集合不存在,MongoDB 会在首次存储该集合的数据时创建该集合

MongoCollection<Document> students = db.getCollection("students");

5、创建文档

5.1 插入一个文档

若要在集合中插入单个文档,可以使用集合的方法insertOne()

@Test
public void insertOne() {

    //创建文档
    Document doc = new Document("name", "star潮")
            .append("age", "23")
            .append("addr", "亳州")
            .append("course", Arrays.asList("MongoDB", "机器学习", "嵌入式", "软件工程"));
    //插入数据库
    students.insertOne(doc);
}

5.2 插入多个文档

若要添加多个文档,可以使用集合的insertMany()方法

@Test
public void insertMany() {
    //创建文档
    Document doc1 = new Document("name", "海宁大哥")
            .append("age", "18")
            .append("addr", "南京")
            .append("course", Arrays.asList("机器学习"));
    Document doc2 = new Document("name", "刘梅西")
            .append("age", "23")
            .append("addr", "芜湖")
            .append("course", Arrays.asList("知识产权", "信息检索", "中特", "自然辨证法"));
    Document doc3 = new Document("name", "张C罗")
            .append("age", "22")
            .append("addr", "蚌埠")
            .append("course", Arrays.asList("MongoDB"));
    ArrayList<Document> list = new ArrayList<>();
    list.add(doc1);
    list.add(doc2);
    list.add(doc3);
    //插入数据库
    students.insertMany(list);
}

6、查询集合

6.1 查找集合中的第一个文档

Document first = students.find().first();
System.out.println(first);

6.2 查找集合中的所有文档

//获取集合中的所有文档
FindIterable<Document> iterable = students.find();
MongoCursor<Document> cursor = iterable.iterator();
while (cursor.hasNext()) {
	System.out.println(cursor.next().toJson());
}

6.3 查找与筛选器匹配的文档

@Test
public void findFilter() {
    //指定查询过滤器
    Bson eq = eq("course", "MongoDB");
    //查找字段具有该值的第一个文档
    Document first = students.find(eq).first();
    System.out.println(first.toJson());
    //查找字段具有该值的所有文档
    FindIterable<Document> iterable = students.find(eq);
    MongoCursor<Document> iterator = iterable.iterator();
    while (iterator.hasNext()) {
        System.out.println(iterator.next());
    }
}

7、更新文档

7.1 要更新单个文档

@Test
public void updateOne() {
    //指定过滤器
    Bson eq = eq("name", "star潮");
    //更新一个文档
    UpdateResult updateResult = students.updateOne(eq, new Document("$set", new Document("name", "张XC")));
    System.out.println(updateResult);
}

7.2 更新多个文档

//把大于20岁的学生年龄改成18岁
@Test
public void updateMany() {
    Bson gt = Filters.gt("age", "20");
    UpdateResult updateResult = students.updateMany(gt, new Document("$set", new Document("age", "18")));
    System.out.println(updateResult);
}

8、删除文档

@Test
public void delete() {
    //删除一条文档
    students.deleteOne(eq("name","张XC"));
    //删除多条文档
    students.deleteMany(eq("age","18"));
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值