docker安裝MongoDB建立用戶,並用工具Robo鏈接簡單CRUD

 

搜索mongo

docker search mongo

拉取mongo【這裏默認爲latest】

docker pull mongo

查看本地鏡像

啓動容器【就是安裝,-v後面的參數表示把數據文件掛載到宿主機的路徑,-p把mongo端口映射到宿主機的指定端口,--auth表示鏈接mongodb須要受權】

docker run -p 27017:27017 -v /tmp/db:/data/db -d mongo

 

查看運行中的容器

docker ps

 進入mongo【以 admin 用戶身份進入mongo,至關於oracle的用戶也就是庫,mysql的庫】

docker exec -it 4abc1e6e12bd mongo admin

建立一個 admin 管理員帳號

db.createUser({ user: 'admin', pwd: '密碼', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });

對 admin 進行身份認證

db.auth("admin","密碼");

 

用工具鏈接mongo【Robo】

https://robomongo.org/downloadmysql

 

查看數據庫

show databases

db.getMongo().getDBs()

查看當前數據庫

db

mongo與mysql對應:庫概念同樣,mongo的集合對應mysql的表,mongo的文檔對應mysql的行數據

建立

插入多條數據insert()sql

只能插入一條數據insertOne()mongodb

插入多條數據insertMany()docker

 

// teachers就是集合,{name: "smallstudy"}這些就是文檔
db.teachers.insert([
    {name: "smallstudy"},
    {name: "zhangsan"},
    {name: "lisi"}
    ])
// 等價於
db.teachers.insertMany([
    {name: "smallstudy"},
    {name: "zhangsan"},
    {name: "lisi"}
    ])

 一對多數據庫

db.teachers.insertMany([
    {name: "smallstudy"},
    {name: "zhangsan"},
    {name: "lisi"}
    ])
//建立後拿到teachers的id
db.students.insert([
    {name: "laodage", teacher_id: ObjectId("5c7102f7eda36e7892b9defb")},
    {name: "xiaolaodi", teacher_id: ObjectId("5c7102f7eda36e7892b9defb")},
    {name: "enen", teacher_id: ObjectId("5c7102f7eda36e7892b9defc")}
    ])
// 查詢
var teacher_id = db.teachers.findOne({"_id": ObjectId("5c7102f7eda36e7892b9defb")})._id;
db.students.find({teacher_id: teacher_id});
//
db.students.find({teacher_id: db.teachers.findOne({"_id": ObjectId("5d25861568a280ba089f91d1")})._id});

 

查詢

find()oracle

findOne()工具

// 查集合下全部文檔
db.teachers.find()
// 查集合下某個文檔
db.teachers.find()[0]
db.teachers.find({"name": "zhangsan"})
// 查看集合長度,也就是看集合有多少文檔
db.teachers.find().count()
db.teachers.find().length()
// 只顯示2條數據
db.teachers.find().limit(2)
// 跳過第1條數據顯示2條數據,用於分頁
db.teachers.find().skip(1).limit(2)

修改

update()spa

updateOne()3d

updateMany()code

replaceOne()

db.teachers.update({"name": "lisi"}, {$set:{"name": "lisi2", "age": 25}})
// 這裏的修改時先刪除後添加的

 

刪除

remove()

deleteOne()

deleteMany()

drop()

// 直接刪集合
db.teachers.remove()
db.collectionName.drop()
// 刪文檔
db.teachers.remove({"name": "lisi2"})

相關文章
相關標籤/搜索