一、什麼是MongoDB
MongoDB是一個開源的文檔資料庫,它採用了類似於JSON的BSON數據格式,可以支持複雜數據結構和動態查詢。MongoDB可以減少不必要的關係型數據設計的複雜度,以及自身帶有的分散式特性可以方便本身的擴展。
MongoDB的安裝可以通過官方提供的rpm安裝包,也可以通過源碼編譯進行安裝。
安裝完成後,我們需要開啟mongodb的服務:
sudo service mongod start
二、基本概念
1.資料庫
在MongoDB中,資料庫可以看作是一組集合(Collection)的集合。每個資料庫都有它自己的獨立的許可權和配置。MongoDB支持多資料庫的操作,可以進行不同資料庫之間的跨資料庫操作。
// 使用use命令切換到一個新的資料庫
use test_db
// 查看當前所有的資料庫
show dbs
// 刪除一個資料庫
db.dropDatabase()
2.集合
集合就是多個文檔的集合,可以看作是關係型資料庫中的表。集合中的每個文檔都是JSON格式的文檔。
// 創建一個集合
db.createCollection('test_collection')
// 查看一個資料庫中所有的集合
show collections
// 刪除一個集合
db.test_collection.drop()
3.文檔
在MongoDB中,文檔是以BSON格式進行存儲的最小數據單位,類似於RDBMS中的行。文檔可以隨意修改、增加和刪除,非常靈活。
db.test_collection.insert({
"title": "MongoDB實戰",
"author": "coder",
"content": "這是一本關於MongoDB實戰的書籍"
})
4.欄位
每個文檔都可以包含零個或更多個欄位,是訪問文檔中單個元素的路徑。欄位可以是字面量、數組、文檔,在一個文檔中,不同的欄位的數據類型可以不同。
db.test_collection.insert({
"title": "MongoDB實戰",
"author": "coder",
"content": "這是一本關於MongoDB實戰的書籍",
"tags": ["資料庫", "NoSQL"],
"publishDate": new Date(),
})
三、查詢語句
1.查詢所有記錄
使用find()方法查詢所有記錄。
//查詢所有記錄
db.test_collection.find()
2.條件查詢
使用find()方法和查詢條件進行特定條件的查詢。
// 查找某個author的所有記錄
db.test_collection.find({"author": "coder"})
// 查找三個月內的所有記錄
db.test_collection.find({"publishDate": {"$gte": new Date(new Date().setMonth(new Date().getMonth() - 3))}})
3.限制查詢記錄
使用limit()方法限制查詢返回的記錄條數。
//查詢前5條記錄
db.test_collection.find().limit(5)
4.跳過查詢記錄
使用skip()方法跳過查詢記錄中的前n條記錄。
//查詢第5-10條記錄
db.test_collection.find().skip(4).limit(6)
四、更新操作
1.修改一條記錄
使用update()方法修改一條記錄。如果不存在,則新建一條。
// 修改第一條記錄的title為『MongoDB從入門到放棄』
db.test_collection.update({"author": "coder"}, {"$set": {"title": "MongoDB從入門到放棄"}}, {"multi": false, "upsert": false})
2.修改多條記錄
如果需要修改多條記錄,則需要設置multi為true。
// 修改所有記錄的title為『MongoDB從入門到出家』
db.test_collection.update({"author": "coder"}, {"$set": {"title": "MongoDB從入門到出家"}}, {"multi": true, "upsert": false})
五、刪除操作
1.刪除一條記錄
使用remove()方法刪除一條記錄。
// 刪除title為『MongoDB從入門到出家』的記錄
db.test_collection.remove({"title": "MongoDB從入門到出家"})
2.刪除多條記錄
如果需要刪除多條記錄,則需要給remove()方法添加multi參數。
// 刪除所有author為『coder』的記錄
db.test_collection.remove({"author": "coder"}, {"multi": true})
六、索引
在MongoDB中,索引和關係型資料庫中的索引類似,可以提高查詢效率。MongoDB中默認會為_id欄位自動創建索引。
1.創建索引
可以使用ensureIndex()方法來為一個欄位創建索引。
// 為title欄位創建索引
db.test_collection.ensureIndex({"title": 1})
2.查看索引
使用getIndexes()方法查看一個集合中所有的索引。
// 查看一個集合中所有的索引
db.test_collection.getIndexes()
3.刪除索引
通過dropIndexes()可以刪除一個已經創建的索引。
// 刪除title欄位的索引
db.test_collection.dropIndex({"title": 1})
七、備份與恢復
1.備份數據
使用mongodump命令可以備份一個mongodb資料庫。
// 備份資料庫
mongodump --host 127.0.0.1 --port 27017 --out /data/backups/my_test_db/
2.恢複數據
使用mongorestore命令可以恢復一個mongodb資料庫。
// 恢復資料庫
mongorestore --host 127.0.0.1 --port 27017 /data/backups/my_test_db/
八、總結
以上是MongoDB的一些基礎知識,包括資料庫、集合、文檔、欄位、查詢語句、更新操作、刪除操作、索引、備份與恢復等。MongoDB的使用非常靈活,可以根據實際需要進行不同的配置。我們需要在使用過程中深入學習,在實際應用中進行探索。
原創文章,作者:JQPJG,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/362641.html