Java 操作mongodb的增删改查操作

MongoDb 非关系型数据库,又称为NoSql(不仅仅是sql),主要是非关系型,分布式,不提供ACID的数据库设计模式。

MongoDB是一种面向文档的数据库管理系统,支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言。

1.需要引入的mongo包

1
2
3
4
5
6
7
8
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
    </dependency>

2.链接mongo的方式

 通过URI初始化:

1
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public static void main(String[] args) {     //mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]         String url = "设置的mongouri信息";
    System.out.println(url);
    MongoClientURI uri = new MongoClientURI(url);
    MongoClient mongoClient  = new MongoClient(uri);
    System.out.println(mongoClient);
    //获取库对象
    MongoDatabase db = mongoClient.getDatabase("数据库名");
    MongoCollection<Document> collection = db.getCollection("需要查询的集合名字");
    FindIterable doc = collection.find(new Document().append("集合中的字段", "字段值"));
    Iterator iterator = doc.iterator();
 
    while (iterator.hasNext()) {
        Document result = (Document) iterator.next();
       // System.out.println(JSON.toJSONString(result));
        Object name = result.get("name");
        Object text = result.get("text");
        System.out.println("aaaa:"+name);
        System.out.println("hhhhh:"+text);
    }
 //关闭链接
    mongoClient.close();
}

  通过ip端口

1
MongoClient mongoClient = new MongoClient(ip, 端口);

  3.增删改查

新增操作
1
2
3
4
5
6
7
//插入数据
Document doc= new Document();      
collection.insertOne(doc);
//批量插入
List<Document> list = new ArrayList<Document>();
list.add(doc);
collection.insertMany(list);

  删除操作。单独删除,批量删除

1
2
3
4
5
6
7
8
9
10
11
12
13
14
String instanceCollectionName = "集合名";
 MongoCollection<Document> instanceCollection = mongoTemplate.getCollection(instanceCollectionName);
//申明删除条件
 
  Bson filter = Filters.eq("code", "123");
 
 //删除与筛选器匹配的单个文档
 instanceCollection.deleteOne(filter);
 //删除表单实例快照
 MongoCollection<Document> newColl= mongoTemplate.getCollection("集合名");
//申明删除条件
 Bson historyFilter = Filters.eq("code", "123");
//删除与筛选器匹配的所有文档
newColl.deleteMany(historyFilter);

 更新操作,单独更新,批量更新

"$set"修饰符

“$set” 用来设置一个字段的值。如果这个字段不存在,则创建该字段。这对于更新模式或添加用户定义的键来说非常方便。

 

1
2
3
4
5
6
7
更新单个字段updateOne
 
UpdateResult updateOne = currcollection.updateOne(
condition, new Document("$set",new Document("test", "123")),
new UpdateOptions().upsert(true));
 
更新整个updateManycurrcollection.updateMany(condition, new Document("$set",document));

  查询

1
2
3
4
5
List<Bson> filters = new ArrayList<>();
// objectCode条件
filters.add(Filters.eq("code","123"));
Bson condition = Filters.and(filters);
FindIterable<Document> doc = collection.find(condition);

  

参考:https://blog.csdn.net/m0_65004039/article/details/127058581

https://blog.csdn.net/m0_46420244/article/details/125828629

posted @   ni当像鸟飞往你的山  阅读(540)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
历史上的今天:
2022-02-23 Activiti 7.1.0 实体对象与类和数据库表的映射
点击右上角即可分享
微信分享提示