MongoDB的基本使用

本文介绍了MongoDB的下载和安装过程,包括使用命令行开启和关闭服务,以及设置远程连接。接着讲解了在SpringBoot中如何集成MongoDB,添加依赖,并展示了多种查询、添加、更新和删除文档的方法,包括条件查询、排序、分页和统计等功能。

MongoDB

下载和安装


下载地址:https://www.mongodb.com/download-center/community

在这里插入图片描述

使用管理员运行命令行,输入 msiexec /package 文件路径及名称 示例: msiexec /package d:/program-zip.msi

开启和关闭服务


使用管理员运行命令行

  • 开启

    net start MongoDB
    
  • 关闭

    net stop MongoDB
    

开启远程连接


编辑 mongo.cfg 文件,更改 bindip 的值,重启MongoDB服务

在这里插入图片描述

SpringBoot操作MongoDB


  1. 添加MongoDB依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
    
  2. 注入操作MongoDB操作对象

    @Resource
    private MongoTemplate mongoTemplate;
    
文档的查询
  • 查询所有

    mongoTemplate.findAll(UserPo.class)
    
  • 查询所有(加上集合名称)

    mongoTemplate.findAll(UserPo.class, "users");
    
  • 基于id进行查询

    mongoTemplate.findById("1", UserPo.class);
    
  • 条件查询(查询所有)

    –参数1:查询条件

    –参数2:返回类型

    mongoTemplate.find(new Query(), UserPo.class);
    
  • 等值查询

    Query query1 = Query.query(Criteria.where("username").is("阿笨"));
    mongoTemplate.find(query1, UserPo.class);
    
  • 大于 >

    Query query2 = Query.query(Criteria.where("age").gt("20"));
    mongoTemplate.find(query2, UserPo.class);
    
  • and

    Query query3 = Query.query(Criteria.where("username").is("阿笨").and("age").is("21"));
    mongoTemplate.find(query3, UserPo.class);
    
  • or

    Criteria criteria = new Criteria();
    criteria.orOperator(
        Criteria.where("username").is("阿笨"),
        Criteria.where("username").is("小冷")
    );
    mongoTemplate.find(Query.query(criteria), UserPo.class);
    
  • 排序

    Query query4 = new Query();
    query4.with(Sort.by(Sort.Order.desc("age")));
    mongoTemplate.find(query4, UserPo.class);
    
  • 分页

    skip():跳过的记录数

    limit():展示的记录数

    Query query5 = new Query();
    query5.skip(0).limit(3);
    mongoTemplate.find(query5, UserPo.class);
    
  • 统计数量

    mongoTemplate.count(new Query(), UserPo.class);
    
  • 去重

    –参数1:条件

    –参数2:需要去重的字段

    –参数3:返回类型

    –参数4:去重字段的类型

    mongoTemplate.findDistinct(new Query(), "age", UserPo.class, String.class);
    
文档的添加
  • save方法添加

    save():只能添加单条数据,如果_id存在,则对数据做更新操作

    UserPo user = new UserPo("1", "张三", "20");
    mongoTemplate.save(user);
    
  • insert方法添加

    insert():可以添加一条或多条数据,_id存在时会报错

    List<UserPo> userList = Arrays.asList(new UserPo("2", "阿笨", "21"),
    new UserPo("3", "小冷", "22"));
    mongoTemplate.insert(userList, UserPo.class);
    
文档的更新
  • 更新符合条件的第一条数据

    Update update1 = new Update();
    update1.set("username", "王五");
    mongoTemplate.updateFirst(Query.query(Criteria.where("id").is("1")), update1, UserPo.class);
    
  • 更新多条符合条件的所有数据

    Update update2 = new Update();
    update2.set("age", "18");
    mongoTemplate.updateMulti(Query.query(Criteria.where("age").is("21")), update2, UserPo.class);
    
文档的删除
  • 删除所有

    mongoTemplate.remove(new Query(), UserPo.class);
    
  • 条件删除

    mongoTemplate.remove(Query.query(Criteria.where("age").is("23")), UserPo.class);
    
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值