简单的MongoDB实践
簡單的MongoDB實踐
文章目錄
- 簡單的MongoDB實踐
- 操作環境
- MongoDB認識
- 查看配置文件
- MongoDB與SQL術語
- MongoDB外部命令
- 常用Shell命令
- 使用MongoDB的Shell命令
- 創建數據庫
- 查看當前數據庫
- 向已創建的數據庫中插入任意文檔
- 查看已插入的文檔
- 更新文檔中任意字段值
- 刪除剛創建的文檔、集合和數據庫
- 常見問題
- 參考文章
操作環境
- 操作系統:Ubuntu 16.04
- MongoDB版本:3.6.17
如果沒有安裝 MongoDB 的,請參照這篇博客進行安裝 Ubuntu16.04在線安裝MongoDB詳細教程
MongoDB認識
查看配置文件
在線安裝的 MongoDB,其配置文件 mongod.conf 默認在 /etc 目錄下,我們可以通過命令進行查看。
cat /etc/mongod.conf在配置文件中, Storage:doPath指定了 MongoDB 數據庫的存儲路徑,默認是 /var/lib/mongodb
storage:
dbPath: /var/lib/mongodb
SystemLog:Path指定了日志文件的路徑,默認是 /var/log/mongodb/mongod.log。logAppend:true表示以追加的方式寫入日志。
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
我們可以根據自己的需求更改 MongoDB 的存儲路徑,當然也可以保持默認。
MongoDB與SQL術語
| database | database | 數據庫 |
| table | collection | 數據庫表/集合 |
| row | document | 數據記錄行/文檔 |
| column | field | 數據字段/域 |
| index | index | 索引 |
| primary key | primary key | 主鍵,MongoDB自動將_id字段設置為主鍵 |
MongoDB外部命令
在l操作 MongoDB 數據庫之前,應該熟悉一些基本的外部操作命令,例如啟動和關閉 MongoDB 等。
| sudo service mongodb start | 啟動 MongoDB |
| sudo service mongodb stop | 關閉 MongoDB |
| mongo -version | 查看 MongoDB 版本 |
| pgrep mongo -l | 查看 MongoDB 是否啟動 |
| mongo | 進入 MongoDB 的 shell 模式 |
這里我們輸入對應的命令啟動 MongoDB,并查看其是否啟動
可以看到,MongDB 已經成功啟動。
注意,如果 MongoDB 啟動時報錯,請參考“常見問題”進行解決。
常用Shell命令
| show dbs | 查看所有數據庫 |
| show users | 顯示所有的用戶 |
| show collections | 顯示當前數據庫的集合 |
| use DataBase_Name | 如果數據庫不存在,則創建數據庫,否則切換到指定數據庫。DataBase_Name是數據庫名 |
| db | 查看當前數據庫名 |
| db.dropDatabase() | 刪除當前數據庫 |
| db.stats() | 顯示當前數據庫的一些信息 |
| db.help() | 顯示數據庫操作指令 |
| db.myCollection.insert(xxx) | 向集合中插入文檔,myCollection是集合名 |
| db.myCollection.update(xxx) | 對集合中的文檔進行更新,myCollection是集合名對應 |
| db.myCollection.remove(xxx) | 刪除集合中的對應文檔,myCollection是集合名 |
| db.myCollection.find().pretty() | 以格式化易讀的方式顯示集合中的所有文檔,myCollection是集合名 |
| db.myCollection.drop() | 刪除指定集合,myCollection是集合名 |
MongoDB 沒有類似于 create 這種創建數據庫的命令,如果想創建一個名為“student”的數據庫,先運行“use student”命令,之后往數據庫里插入一些數據,這個數據庫就創建成功了。
如果創建了數據庫之后不插入數據,那么當前數據庫為空,輸入 show dbs命令時看不到該數據庫的(MongoDB不會顯示空的數據庫)。一段時間內仍對其沒有操作的話,該數據庫會被自動刪除。
在 MongoDB 中,我們不需要創建集合。當我們插入一些文檔時,MongoDB 會自動創建集合。
MongoDB 中默認的數據庫為 test,如果你沒有創建新的數據庫,集合將存放在 test 數據庫中。
使用MongoDB的Shell命令
在使用 MongoDB 的 shell 命令之前,我們應該先輸入命令 mongo 進入其 shell 模式。
啟動 shell 模式時可能會出現以下的一些 WARNING,這并不會影響到 MongoDB 的使用,忽略即可。
如果想要退出 shell 模式也很簡單,輸入 exit 命令即可。
創建數據庫
我們先看一下 MongoDB 的數據庫列表
show dbs接著,我們創建一個名為 student 的數據庫,并往里插入一個文檔。
use student db.res.insert({"id":100, "name":"zhangsan"})再次查看數據庫列表,可以發現 student 數據庫創建成功。
查看當前數據庫
- 輸入命令 db 即可查看當前數據庫名稱
- 輸入命令 db.stats() 可以查看當前數據庫的詳細信息
向已創建的數據庫中插入任意文檔
MongoDB可以不定義集合,在插入文檔時集合會自動創建。
我們可以在指定集合中一次插入一條文檔數據
db.test1.insert({"id":10, "name":"lisi", "age":22})也可以一次插入多條
db.test2.insert([{"id":20, "name":"liwu", "age":20}, {"id":30, "name":"liliu", "age":21}, {"id":40, "name":"liqi", "age":22}])查看已插入的文檔
我們先查看數據庫中的集合
show collections然后查找每個集合中的文檔。查找的方法其實是 find(),pretty()方法是以易讀的形式進行展示
db.res.find().pretty() db.test1.find().pretty() db.test2.find().pretty()find() 方法還支持條件查找,例如我們查找 id 小于 40 的文檔。具體的條件查找方法請參考這篇博客 mongodb 條件查詢
更新文檔中任意字段值
我們先查看 test2 集合中文檔,方便做對比。
使用 update() 方法更新數據
- set中輸入的鍵值對應,則更新對應數據
- set中輸入的鍵值不存在,則會在文檔后面添加
MongoDB中也可以使用 save() 方法進行更新,不過 save 相當于對整個文檔內容的全覆蓋,而不是局部更新。(sava方法一般用的很少)
如果使用save,就只需要使用 _id ,就能修改對應的數據了。
刪除剛創建的文檔、集合和數據庫
remove() 函數可以接受一個查詢文檔作為可選參數來有選擇性地刪除符合條件的文檔。刪除文檔是永久性的,不能撤銷,也不能恢復。我們在執行 remove() 函數前最好先用 find() 命令來查看文檔。
例如,我們刪除 test2 集合中 id 為 20 的所有文檔。
db.test2.remove({'id':20})如果想要刪除 test2 集合下的所有文檔,可以使用如下方式(相當于truncate)
db.test2.remove({})刪除集合,我們直接使用 drop() 方法。如果刪除集合的話,集合下現存的所有文檔也會被一并刪除。
db.test2.drop()刪除數據庫,我們使用 dropDatabase() 方法。同樣,刪除數據庫的話,數據庫下所有現存的集合也都會別一并刪除。
db.dropDatabase()常見問題
輸入“sudo service mongodb start”啟動 MongoDB 時報錯
Failed to start mongodb.service: Unit mongodb.service not found.
我們需要為 MongoDB 創建一個配置文件,一共是三步:
- 使用 vim 編輯器創建配置文件
- 在配置文件中添加如下內容
按“i”鍵進入編輯模式,將文本內容輸入進去。按“esc”鍵接著輸入“:wq”保存并退出。
[Unit] Description=High-performance, schema-free document-oriented database After=network.target[Service] User=mongodb ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf[Install] WantedBy=multi-user.target- 輸入如下命令啟動 MongoDB
我們輸入命令測試 MongoDB 是否啟動成功。
pgrep mongo -l找到了 MongoDB 進程,MongoDB 已經啟動成功。
以后每次啟動或關閉 MongoDB ,仍然使用 service 命令。
sudo service mongodb start sudo service mongodb stop參考文章
Ubuntu下MongoDB安裝與使用教程
ubuntu16.04通過apt-get方式安裝MongoDB
菜鳥教程-MongoDB 教程
總結
以上是生活随笔為你收集整理的简单的MongoDB实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu16.04在线安装Mongo
- 下一篇: 第五章-分布式并行编程框架MapRedu