编程不良人教学 共 7个半小时
https://www.bilibili.com/video/BV1KE411778M?p=2
P1.mongodb的引言----------------53:33
P2.mongodb中的常用指令----------47:32
P3.mongo中的查询基本使用--------44:13
P4.java客户端连接mongodb--------1:08:41
P5.mongodb索引概念--------------46:25
P6.mongodb的复制----------------1:08:15
P7.mongodb副本集搭建------------55:32
P8.mongo中的分片操作------------39:45
P9.mongodb中分片----------------32:43

P1.mongodb的引言
官网 https://www.mongodb.com/
当前版本 4.4 ,从4.0 开始 mongodb 有 transaction事务的概念了
mongodb 企业版收费,使用社区版
yum install -y mongodb-org
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/

https://www.mongodb.com/try/download/community

Supported Platforms¶
Changed in version 3.4: MongoDB no longer supports 32-bit x86 platforms.
通过yum 方式安装 mongodb ,默认安装路径 /usr/bin



启动Mongodb
启动服务端 (注意这种方式只支持本地访问,局域网内的其他用户不可以访问)
mongod --port=27017 --dbpath=/root/data
启动客户端
mongo --port 27017
P2.mongodb中的常用指令—
use ems;
show tables;
db.createCollection(“t_user”);
for(var i=0;i<10;i++){
db.t_user.insert({“id”:i,“name”:“xiaohei”,“addr”:“xuzhou”,“age”:11});
}
db.t_user.find();
20201115
P3.mongo中的查询基本使用

//01 基本查询
//查询所有
db.t_user.find();
//查询一个
db.t_user.findOne();
//精确查询
db.t_user.find({name:“xiaohei”});
db.t_user.findOne({name:“xiaohei”});
db.t_user.find({name:“xiaohei”,“id”:6});
//过滤查询结果
//({},{}) 第二个参数是查询结果 0:查询结果不显示此字段 1:查询结果显示此字段
db.t_user.find({},{name:1,age:1});
db.t_user.find({},{name:0});
// 1 ,0 不能混用 报错
db.t_user.find({},{name:0,age:1});
//查询结果排序
//sort 1 :升序排序 -1:降序排序
db.t_user.find().sort({age:-1});
//sort 可以指定多个值排序
db.t_user.find().sort({age:-1,name:1});
//分页
// skip(起始条数).limit(每页记录数)
db.t_user.find().skip(0).limit(2);
//总条数
db.t_user.count();
db.t_user.find().count();
//模糊查询
//下面错误 不要加" 双引号
db.t_user.find({name:"/xx/"});
// 下面是正确的
db.t_user.find({name:/xx/});
//02 高级查询
//等值查询
db.t_user.find({name:“小黑”});
db.t_user.find({name:{$eq:“小黑”}});
//and 查询
db.t_user.find({name:“小黑”,age:13});
db.t_user.find(
{KaTeX parse error: Expected 'EOF', got '}' at position 29: …小黑"},{age:13}
]}̲
);
db.t_user.f…and:[
{name:“小黑”,age:13}
]}
);
//or 查询
db.t_user.find(
{$or:[
{name:“小黑”},{age:13}
]}
);
//关系运算相关 >(gt);<(gt) ; <(gt);<(lt) ; >=(gte);<=(gte) ; <=(gte);<=(lte) =($eq)
db.t_user.find({age:{KaTeX parse error: Expected 'EOF', got '}' at position 5: gt:6}̲}); db.t_user.f…gt:6,$lte:58}});
db.t_user.find({ KaTeX parse error: Expected '}', got 'EOF' at end of input: …hei"}, { age:{gt:6} ] } });
// not or ($nor ) 既不是1,也不是2
db.t_user.find({ KaTeX parse error: Expected '}', got 'EOF' at end of input: …hei"} ,{age:{gt:6}} ] });
20201117
P4.java客户端连接mongodb-----
纯mongo方式处理

启动服务端( --bind_ip=0.0.0.0 支持非本地访问)
mongod --port=27017 --dbpath=/root/data --bind_ip=0.0.0.0
启动客户端
mongo --port 27017

spingBoot 整合 mongo 方式的处理
详细代码地址
https://github.com/wei198621/mongoDBTest

spingBoot 整合mongo 实际是springData 的方式处理
pom 文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--springboot 方式-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.tiza.leo</groupId>
<artifactId>mongoDB</artifactId>
<version>1.0-SNAPSHOT</version>
<!--springboot 方式-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--引入springboot-mongodb的jar-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
</dependency>
</dependencies>
</project>
yml 文件
spring:
data:
mongodb:
uri: mongodb://192.168.121.102:27017/ems
代码
package com.tiza.leo.springBootMongo.entity;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @author leowei
* @date 2020/11/18 - 23:49
*/
@Data
public class User implements Serializable {
private String id;
private String name;
private Integer age;
private Date bir;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Date getBir() {
return bir;
}
public void setBir(Date bir) {
this.bir = bir;
}
public User() {
}
public User(String id, String name, Integer age, Date bir) {
this.id = id;
this.name = name;
this.age = age;
this.bir = bir;
}
}
package com.tiza.leo.springBootMongo;
import com.tiza.leo.Application;
import com.tiza.leo.springBootMongo.entity.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.Date;
import java.util.UUID;
/**
* @author leowei
* @date 2020/11/18 - 23:45
*/
@SpringBootTest(classes = Application.class)
@RunWith(SpringRunner.class)
public class mongoTemplateTest {
@Autowired
private MongoTemplate mongoTemplate;
@Test
public void test(){
User user = new User();
user.setId(UUID.randomUUID().toString());
user.setAge(18);
user.setBir(new Date());
user.setName("leo");
mongoTemplate.save(user);
}
}
效果



3482



被折叠的 条评论
为什么被折叠?



