本篇为 docker mongo 实操记录
MongoDB 概念解析
docker MongoDB 环境搭建
下载镜像
docker pull mongo
启动容器
docker run --name mongo-test -d -p 27017:27017 mongo --auth
进入容器
docker exec -it mongo-test /bin/bash
选择数据库
use admin
创建用户
db.createUser({user: 'root',pwd: 'root',roles: [{role:'root',db:'admin'}]})
验证用户
db.auth('root', ''root)
MongDB 使用
数据库
创建数据库
如果数据库不存在,则创建数据库,否则切换到指定数据库。
use db1
查看当前数据库
db
插入数据
db.db1.insertOne({name: "yeswaetr"})
删除数据库
删除当前数据库
db.dropDatabase()
集合
创建集合
创建集合 arr2
db.createCollection('arr2')
创建集合arr3
固定大小;最大装 1000B;最多装 1000 个文档
db.createCollection("arr3", {capped : true, size : 1000, max : 1000})
删除集合
删除集合 arr2
db.arr2.drop()
查看集合
// 两个命令都可以
show tables
show collections
文档
插入
insertOne()
、 insertManty()
document=({title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
by: '菜鸟教程',
url: 'http://www.runoob.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
});
db.arr2.insertOne(document)
更新
删除
语法
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
remove()
db.col.remove({'title':'MongoDB 教程'})
查询
语法
db.collection.find(query, projection)
and 和 or
like
## LIKE模糊查询userName包含A字母的数据(%A%)
-- SQL:
SELECT * FROM UserInfo WHERE userName LIKE "%A%"
-- MongoDB:
db.UserInfo.find({userName: /A/})
#############
## LIKE模糊查询userName以字母A开头的数据(A%)
-- SQL:
SELECT * FROM UserInfo WHERE userName LIKE "A%"
--MongoDB:
db.UserInfo.find({userName :/^A/})
类型匹配$type
db.col.find({"title" : {$type : 'string'}})
limit 和 skip
显示第二条文档数据
db.col.find({},{"title":1,_id:0}).limit(1).skip(1)
排序sort()
db.COLLECTION_NAME.find().sort({KEY:1})
索引
1 为升序创建索引,-1 降序
## title 升序
db.col.createIndex({"title":1})
## 复合索引
db.col.createIndex({"title":1,"description":-1})
更多资料在 见官方文档~