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/download

 

查看數據庫

show databases

db.getMongo().getDBs()

查看當前數據庫

db

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

創建

插入多條數據insert()

只能插入一條數據insertOne()

插入多條數據insertMany()

 

// 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()

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()

updateOne()

updateMany()

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"})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM