Windows

下载
https://www.mongodb.com/download-center/community

安装mongodb
最好不要安装到c盘

安装好后创建一个data文件

命令行下运行mongodb服务器
在mongodb的bin目录 mobgod --path data文件的路径
在这里插入图片描述
打开客户端
在bin 目录输入mongo
在这里插入图片描述

Linux

下载地址:https://www.mongodb.com/download-center#community

下载安装包上传到Linux并解压

移动文件到自定义目录

配置环境变量(类似jdk)

创建一个数据库目录(与解压后的mongodb在一个文件夹)
mkdir mongodbdata

创建一个日志文件
mkdir logs
日志文件中创建一个mongodb日志
touch mongodb.log
在mongodb的bin文件夹中创建一个配置文件
vi mongodb.conf

dbpath = /home/admin/myapps/mongodbdata #数据文件存放目录
 logpath = /home/admin/myapps/logs/mongodb.log #日志文件存放目录
  port = 27017 #端口 
  fork = true #以守护程序的方式启用,即在后台运行
  bind_ip=0.0.0.0 #让外界可以连接到数据库

启动服务器
./mongod -f mongodb.conf

运行客户端
./mongo Ip地址
(如果配置文件没有写bind_ip 不用加Ip地址)

mongoDB支持的数据类型

1.null
2.boolean
3.数值(整数和浮点数)
默认使用64位的浮点数 如果要使用整数
{key:NumberInt(2)}
{key:NumberLong(2)}
4.字符串(使用utf-8编码字符显示)
5.日期(毫秒单位,不存储时区)
6.正则表达式(与js相同)
7.数组(与js相同)
8.内嵌文档(文档总大小限制为16mb,效率高于多键查询)
9._id和Objectid(每个文档都有一个不重复的id键 可设置,不设置自动生成)
ObjectId是一个12字节(24个十六进制数字)的存储空间,ObjectId的12字节数据组织方式如下:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11
时间戳 | 机器码 | PID | 计数器
10,代码(文档和代码中可以包含js代码)
11.二进制数据
二进制数据是一个二进制字节的字作串,要保存非UTF-8字符到数据库中,只能使用十进制数据

mongodb的常用指令

查看所有数据库
show dbs
数据库至少要有一条数据 不然不会显示

切换数据库
use 数据库名
没有就会创建

查看当前数据库
db

查看所有数据集
show collections

删除当前数据库
db.dropDatabase()
删除数据库只会删除有数据 不会删除库名和关系

创建集合
db.createCollecetion(“集合名”)

删除集合
db.collectionName.drop()

重命名
db.oldcollectionName.renameCollection(“newName”)

新增数据
db.collectionName.insert({“key”:value,“key”:value})
或者
db.collectionName.save({“key”:value,“key”:value})

查询所有
db.collectionName.find()

条件查询
db.collectionName.find({“age”:26}) //查询等值关系 db.collectionName.find({age : {KaTeX parse error: Expected 'EOF', got '}' at position 9: gt : 100}̲}) // 大于100 db.…gte : 100}}) //大于等于100 db.collectionName.find({age : {KaTeX parse error: Expected 'EOF', got '}' at position 9: lt : 150}̲}) //小于150 db.c…lte : 150}}) //小于等于150 db.collectionName.find({age : {$lt :200, $gt : 100}}) //大于100,小于200

查询后加上 .pretty() 会以更容易阅读的方式显示

多个条件之间 逗号隔开表示 and

用or关键字 表示or 条件用 [ ] 括住
db.collectionName.find({$or: [ {key1: value1}, {key2:value2}]})

查询一条用findOne替代find

查询指定列
db.collectionName.find({},{key1:1,key2:1,sex_orientation:true})

查询去重的莫格字段
db.collectionName.distinct(‘key’)

排序查询
db.collectionName.find().sort({salary:1}) //升序 db.collectionName.find().sort({salary:-1}) //降序

统计记录数
db.collectionName.find().count()

查询限定条数
db.collectionName.find().limit(number)

跳过多少条 并限定查询多少条
db.collectionName.find().limit(NUMBER).skip(NUMBER)

查询
db.collectionName.update(,,{upsert: , multi: )
query: update的查询条件

update : update的对象和一些更新的操作符(如 , , ,inc…)等,也可以理解为sql update查询内set后面的

upsert : 可选,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。

multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出
来多条记录全部更新。
db.collectionName.update({name:‘zhangsan’},{$set:{age:23}},false,true)

IDEA调用mongodb

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>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
        <java.version>11</java.version>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
    <groupId>com.redis</groupId>
    <artifactId>testredis</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongo-java-driver</artifactId>
            <version>3.2.2</version>
        </dependency>
    </dependencies>

</project>
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import org.bson.Document;

public class Demo4 {
    public static void main(String[] args) {
        //建立mongodb连接
        MongoClient mongoClient = new MongoClient("192.168.206.128", 27017);
        //得到数据源
        MongoDatabase mydb1 = mongoClient.getDatabase("mydb1");
        System.out.println(mydb1);//输出信息
        //得到集合
        MongoCollection<Document> users = mydb1.getCollection("users");
        // 增
        //新建document
        Document id = new Document("_id", 1104);
        id.append("name","轩辕狗蛋");
        id.append("age",23);
        users.insertOne(id);
        //删
        users.deleteOne(new Document("name","lisi"));
        //改
        users.updateOne(Filters.eq("name","zhangsan"),new Document("$set",new Document("age","888")));
        //查
        FindIterable<Document> documents = users.find();
        MongoCursor<Document> iterator = documents.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }
}

mongoDB集群搭建

准备三台虚拟机

修改mongodb.conf文件,添加replSet配置(三台都需要修改成同一个名称),
replSet=repl //自定义

然后启动服务器

初始化复制集

(任意一台服务器)

rs.initiate({_id:‘rep1’,members:[{_id:1,host:‘ip:27017’}, {_id:2,host:‘ip:27017’},{_id:3,host:‘ip:27017’}]})
返回"ok";1 就是成功了
在这里插入图片描述

从机使用
rs.slaveOk()
可以读写
在这里插入图片描述

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐