mongodb学习
1.下载安装
网址: Download MongoDB Community Server | MongoDB
下载后在本地C盘新建文件夹C:/data/db
进入安装目录bin文件夹打开cmd 执行
mongod --storageEngine=mmapv1
把存储挂载到本地目录
在bin目录下找到mongod双击打开数据库。
2.使用studio3t图形化工具连接mongdb
下载地址。 Download Studio 3T Community Edition
默认输入名称就可以。
3.开始使用mongdb
3.1. 创建数据库, 数据库里面collection, collection里面可以insert document
每个document是一个json
3.2.进行查询query也使用json, 比如{"id":"ObjectId("5e5142fa1996fb065563a5b6")"}
使用and进行查询
{$and:[{"name":"peter"},{"mail":"peter@gmail.com"}]}
使用or进行查询
{$or:[{"name":"peter"},{"mail":"peter@gmail.com"}]}
使用in进行查询
{"name":{$in:["John","Peter"]}
}
使用模糊查询,name 包含yaohoo的
{"name":/yaohoo/}
start with query 以...开始
{"name":/^zhang/}
update document
update query in mongodb 打开mongoshell终端
// 更新name=join的document, 如果有多个匹配John的document只更新一个.update => .updateOne如果要一次更新多个document就用updateMany
db.student.update({"name":"John"},{$set: {"mail":"john@gmail.com","name":"john"}}
)
delete document
delete query in mongodb
// 这个会删除所有name是John的document。包含多条记录。
db.student.remove({"name":"John"}
)
find query
db.student.find({"name":"John"
})db.student.find({$and:[....]
})
3.3 使用springboot mongodb example
package com.example.service;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;import com.example.entity.Student;
import com.example.repository.StudentRepository;@Service
public class StudentService {@AutowiredStudentRepository studentRepository;public Student createStudent (Student student) {return studentRepository.save(student);}public Student getStudentbyId(String id) {return studentRepository.findById(id).get();}public List<Student> getAllStudents() {return studentRepository.findAll();}public Student updateStudent (Student student) {return studentRepository.save(student);}public String deleteStudent (String id) {studentRepository.deleteById(id);return "Student has been deleted.";}public List<Student> getStudentsByName (String name) {return studentRepository.findByName(name);}public Student studentsByNameAndMail (String name, String email) {return studentRepository.findByEmailAndName(email, name);}public Student studentsByNameOrMail (String name, String email) {return studentRepository.findByNameOrEmail(name, email);}public List<Student> getAllWithPagination (int pageNo, int pageSize) {Pageable pageable = PageRequest.of(pageNo - 1, pageSize);return studentRepository.findAll(pageable).getContent();}public List<Student> allWithSorting () {Sort sort = Sort.by(Sort.Direction.ASC, "name", "email");return studentRepository.findAll(sort); }public List<Student> byDepartmentName (String deptName) {return studentRepository.findByDepartmentDepartmentName(deptName);}public List<Student> bySubjectName (String subName) {return studentRepository.findBySubjectsSubjectName(subName);}public List<Student> emailLike (String email) {return studentRepository.findByEmailIsLike(email);}public List<Student> nameStartsWith (String name) {return studentRepository.findByNameStartsWith(name);}}