Mongo基础-相关命令行-Docker

Docker安装mongo

1
2
docker pull mongo
docker run --name mongo-server -p 27017:27017 -v /data/mongo/db:/data/db -d mongo

使用mongo镜像执行mongo命令了连接容器

1
docker run -it mongo mongo --host 172.17.0.2

相关命令

1
2
3
4
命令行登陆数据库(类似 mysql -uroot -p -h)
mongo --port 27017
use admin
db.auth("adminUser", "adminPass")
1
2
3
4
5
6
7
8
9
10
11
> 查看数据库
show databases; // 或者 show dbs;
> 创建数据库
use new_db; //只有插入数据,db才会真正创建.
> 创建集合后要再插入一个文档(记录)
db.test.insert({"name":"菜鸟"})
> 删除数据库
db; // 查看当前数据库
db.dropDatabase();//删除当前数据库
> 集合的删除
db.collection.drop(); // 在当前数据库下的集合
1
2
> 查看集合
show collections

开启权限验证

1
mongod --auth --dbpath "/data/db"

开启docker中的mongodb认证授权

集合创建

集合创建

集合(collection)和table的区别?

创建固定大小的集合

1
2
3
db.createCollection("mycol", { capped : true, autoIndexId : true, size : 
6142800, max : 10000 } )

文档

文档的数据结构和JSON基本一样。
所有存储在集合中的数据都是BSON格式。
BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。

1
2
3
4
5
6
7
db.col.insert({title: 'MongoDB 教程', 
description: 'MongoDB 是一个 Nosql 数据库',
by: '菜鸟教程',
url: 'http://www.runoob.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
})

查看已经插入的文档

1
db.col.find()

也可以将数据定义为一个变量,然后插入

1
2
3
4
5
6
7
8
document=({title: 'MongoDB 教程', 
description: 'MongoDB 是一个 Nosql 数据库',
by: '菜鸟教程',
url: 'http://www.runoob.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
});
db.col.insert(document);

文档更新语法

MongoDB 更新文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)

例如:
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})

db.col.find().pretty()
{
"_id" : ObjectId("56064f89ade2f21f36b03136"),
"title" : "MongoDB",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "菜鸟教程",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}

以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true。
>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})

删除文档

MongoDB 删除文档

查询文档

MongoDB 查询文档

MongoDB 条件操作符

MongoDB $type 操作符

MongoDB 索引

MongoDB 索引

创建索引语法:

1
db.collection.createIndex(keys, options)

MongoDB Java

MongoDB Java