MongoDB操作基础
Windows下载https://www.mongodb.com/download-center/community安装mongodb最好不要安装到c盘安装好后创建一个data文件命令行下运行mongodb服务器在mongodb的bin目录 mobgod --path data文件的路径打开客户端在bin 目录输入mongoLinux下载地址:https://www.mongodb.com/dow
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()
可以读写
更多推荐
所有评论(0)