本文共 1962 字,大约阅读时间需要 6 分钟。
MongoDB适用于高读写、高并发的场景,擅长处理非结构化数据。其文档存储模式使得数据灵活性极高,支持快速插入、查询和更新操作。
数据模型:MongoDB以文档对象为基本单位,集合中可存储多个文档;MySQL以行为基本单位,依赖表和字段结构。
查询特点:MongoDB支持复杂查询,如条件和排序操作;MySQL查询较为基础,主要通过JOIN操作。
扩展性:MongoDB易于扩展,支持分布式和副本集;MySQL扩展性较差,难以实现高可用性架构。
test
,实际使用中需创建具体数据库。db.users.insertOne()
用于插入单条数据,返回插入结果。db.users.insertMany()
用于批量插入多条数据。db.users.find()
用于查询文档,支持条件筛选和排序。$gt
、$lt
、$eq
等操作符组合多个条件。$limit
和$skip
限制返回数据量。sort()
方法支持升序和降序排序。db.users.updateOne()
用于更新单条文档,支持条件匹配。db.users.updateMany()
用于更新多条符合条件的文档。db(users).updateOne()
可结合插入操作,用于 Upsert 操作。db.users.deleteOne()
删除单条文档。db.users.deleteMany()
删除多条文档。db.users.deleteWithQuery()
删除符合条件的文档。spring-boot-starter-data-mongodb
依赖。@Document
注解映射MongoDB文档,@Field
注解映射字段。@Field
指定字段名,默认使用字段名。mongoTemplate.insert()
方法插入文档,支持批量插入。mongoTemplate.find()
方法执行查询,支持条件筛选和排序。mongoTemplate.update()
方法执行更新操作,可结合插入条件。_id
字段,可指定生成方式。class
字段,用于类型转换。@Store
注解指定存储策略。mongoTemplate.findOne(new Query("username").eq("admin"));
mongoTemplate.findOne( new Query("username").eq("admin") .and("email").notNull());
mongoTemplate.findOne( new Query("username").eq("admin") .sort(Sort.by("username").ascending()) .skip(1).limit(10));
mongoTemplate.update( new Query("username").eq("admin"), new Update().set("status").to(true));
Listusers = Arrays.asList(new User("user1", "user1@example.com"));mongoTemplate.insert(users, "users", User.class);
通过以上操作,开发者可以熟练使用MongoDB进行文档存储与管理,充分发挥其高性能和灵活性。
转载地址:http://ndffk.baihongyu.com/