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 {
	
	@Autowired
	StudentRepository 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);
	}
	
}