MongoDb常用代码及配置

MongoDb常用的语句:

详情见:https://blog.csdn.net/sinat_32502451/article/details/134342559

MongoDb建表:

MongoDB不需要建表,直接插入数据就会建表。

日期用 ISODate() 转换。

复制代码
db.getCollection("mongoDbTest").insert({userId:"dxcefg", status:1,  price:1.23, updateTime : ISODate("2022-02-13T07:06:25.371Z")})

添加 maven 依赖:

复制代码
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>

添加 application.yml 配置

复制代码
#数据库配置
spring:
  data:
    mongodb:
      # uri格式为:mongodb://用户名:密码@IP地址:端口/数据库
      uri: mongodb://xx:xxx@xx.xx.xx.xx:xx/xx

#mongodb打印日志
logging:
  level:
    org.springframework.data.mongodb.core.MongoTemplate: DEBUG

如果使用 properties文件,则是:

复制代码
spring.data.mongodb.uri=mongodb://xx:xxx@xx.xx.xx.xx:xx/xx
#mongodb打印日志
logging.level.org.springframework.data.mongodb.core.MongoTemplate=DEBUG

数据表对应的Bean:

@Document 指定表名。

复制代码
@Data
@Document(collection = "mongoDbTest")
public class MongoDbTest {

    private String userId;

    private int status;

    private BigDecimal price;

    private Date updateTime;

	//忽略 getter()、setter()
}

查询

复制代码
@Service
public class MongoDbService {

    @Resource
    private MongoTemplate mongoTemplate;

    public void testMongoDb() {

        Criteria criteria = new Criteria();
        Query query = new Query();
        criteria.and("status").is(1);
        query.addCriteria(criteria);
		
	//排序
        List<Sort.Order> orders = new ArrayList<Sort.Order>();
        orders.add(new Sort.Order(Sort.Direction.DESC, "updateTime"));
        query.with(Sort.by(orders));
        query.limit(1000);
	//查询
        List<MongoDbTest> list = mongoTemplate.find(query, MongoDbTest.class);
        System.out.println("MongoDbTest list:" + JSON.toJSONString(list));

    }
}

插入

复制代码
    public void testMongoDbInsert() {
        MongoDbTest mongoDbTest = new MongoDbTest();
        mongoDbTest.setUserId("081914");
        mongoDbTest.setPrice(BigDecimal.TEN);
        mongoDbTest.setStatus(2);
        mongoDbTest.setUpdateTime(new Date());

        //表名
        String collectionName = "mongoDbTest";
        //插入
        mongoTemplate.insert(mongoDbTest, collectionName);

    }

更新/修改

复制代码
    public void testMongoDbUpdate() {
        //要更新的数据
        Update update = Update.update("status", 789);
        //查询条件
        Query query = new Query();
        query.addCriteria(Criteria.where("userId").is("abc"));
        //表名
        String collectionName = "mongoDbTest";

        //更新符合条件的所有数据
        mongoTemplate.updateMulti(query, update, collectionName);

        //只更新一条数据
//        mongoTemplate.updateFirst(query, update, collectionName);

    }

删除

复制代码
    public void testMongoDbDelete() {

        //查询条件
        Query query = new Query();
        query.addCriteria(Criteria.where("userId").is("abcdefg"));
        //表名
        String collectionName = "mongoDbTest";
        //删除
        mongoTemplate.remove(query, collectionName);

    }
相关推荐
知识分享小能手1 天前
MongoDB入门学习教程,从入门到精通,MongoDB创建、更新和删除文档(3)
数据库·学习·mongodb
爬山算法1 天前
MongoDB(60)如何使用explain命令?
数据库·mongodb
知识分享小能手2 天前
MongoDB入门学习教程,从入门到精通,MongoDB入门指南 —— 知识点详解(2)
数据库·学习·mongodb
vpk1122 天前
使用 Docker Compose 快速安装 MongoDB
mongodb·docker·容器
爬山算法2 天前
MongoDB(55)如何监控分片集群?
数据库·mongodb
vpk1122 天前
Docker Compose 部署 Yapi(连接本地MongoDB)
mongodb·docker·yapi
jianqiang.xue3 天前
ESP32-S3 运行 Linux 全指南:从 RISC-V 模拟器移植到 8 秒快速启动
linux·stm32·单片机·mongodb·risc-v·esp32s3
知识分享小能手3 天前
MongoDB入门学习教程,从入门到精通,MongoDB 知识点详解(1)
数据库·学习·mongodb
爬山算法5 天前
MongoDB(52)如何配置分片?
数据库·mongodb
2401_858936886 天前
51 单片机核心知识点:GPIO、中断、定时器与蜂鸣器驱动
单片机·mongodb·nosql