@SpringBootTest
class MongodbApplicationTests {
@Autowired
private MongoTemplate mongoTemplate;
/**
* 新增
*/
@Test
public void insertStudent() {
//创建集合 默认会创建
// mongoTemplate.createCollection(Student.class);
Student student = Student.builder()
.id("3")
.age(18)
.createTime(new Date())
.gender("1")
.password("123")
.username("ccgg").build();
try {
Student insert = mongoTemplate.insert(student);
System.out.println(insert);
} catch (Exception e) {
e.printStackTrace();
System.out.println("创建失败");
}
}
/**
* 查询所有
*/
@Test
public void findAll() {
List<Student> students = mongoTemplate.findAll(Student.class);
long count = mongoTemplate.count(new Query().with(Sort.by(Sort.Direction.ASC, "username")), Student.class);
System.out.println(students + String.format("%s%d%s", "查询到", count, "条"));
}
/**
* 根据id查询
*/
@Test
public void findById() {
Student student = mongoTemplate.findById("1", Student.class);
System.out.println(student);
}
/**
* 根据条件查询
*/
@Test
public void findByCondition() {
Criteria criteria = new Criteria();
criteria.where("username").is("ccgg");
criteria.and("gender").is("1");
Query query = new Query(criteria);
List<Student> students = mongoTemplate.find(query, Student.class);
System.out.println(students);
}
/**
* 模糊查询
*/
@Test
public void findStudentsLikeName() {
String regex = String.format("%s%s%s", "^.*","Cc", ".*$");
//忽略大小写
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Query query = new Query(Criteria.where("username").regex(pattern));
List<Student> students = mongoTemplate.find(query, Student.class);
System.out.println(students);
}
/**
* 模糊查询字符串
*/
public void findByString(){
Query query = new Query();
query.addCriteria(Criteria.where("userVisitTime").regex(".*?" +yesterday+ ".*"));
List<UserVisitMerchantMongoLog> userVisitMerchantMongoLogs =
mongoTemplate.find(query, UserVisitMerchantMongoLog.class);
}
/**
*模糊查询时间
*/
public void findByTime(){
Criteria criteria = Criteria.where("userVisitTime")
.gte(DateUtil.beginOfDay(dateTime)).lte(DateUtil.endOfDay(dateTime));
Query query = new Query(criteria);
List<UserVisitMerchantMongoLog> userVisitMerchantMongoLogs = mongoTemplate.find(query, UserVisitMerchantMongoLog.class);
}
/**
* 分页查询
*/
@Test
public void findStudentsByPage(){
Query query = new Query();
String regex = String.format("%s%s%s", "^.*", "Cc", ".*$");
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
query.addCriteria(Criteria.where("username").regex(pattern));
//构造分页条件
query.with(PageRequest.of(1, 10));
//构造分页排序条件
//query.with(Sort.by(Sort.Direction.ASC, "", ""));
query.with(Sort.by(Sort.Direction.ASC, "age"));
List<Student> studentList = mongoTemplate.find(query, Student.class);
System.out.println(studentList);
}
/**
* 修改
*/
@Test
public void updateStudent(){
try {
Query id = new Query(Criteria.where("_id").is("1"));
Update update = new Update();
update.set("username", "哈哈哈");
update.set("password", "666");
update.set("age", "100");
UpdateResult upsert = mongoTemplate.upsert(id, update, Student.class);
long modifiedCount = upsert.getModifiedCount();
if (modifiedCount>0){
System.out.println("更新成功");
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 删除
*/
@Test
public void deleteById(){
try {
Query id = new Query(Criteria.where("_id").is(2));
DeleteResult result = mongoTemplate.remove(id, Student.class);
long deletedCount = result.getDeletedCount();
if (deletedCount>0){
System.out.println("删除成功");
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("删除失败");
// throw new SystemException(-1, "删除出错");
}
}
}
SpringBoot下MongoDB操作
最新推荐文章于 2024-06-10 14:00:00 发布