MongoDB 資料庫命令操作
阿新 • • 發佈:2019-01-27
1、建立資料庫
>show dbs //查詢資料庫列表, 新建立的資料庫不會在於列表中。要顯示的資料庫,需要至少插入一個文件進去;
2、向資料庫插入資料 )
如果要以單個查詢插入多個文件,可以通過文件 insert() 命令的陣列方式。
3、刪除資料庫
其實在MongoDB中並不需要建立集合。 當插入一些文件時 MongoDB 會自動建立集合。 5、刪除集合
MongoDB的update()和save()方法用於更新文件到一個集合。 update()方法將現有的文件中的值更新,而save()方法使用傳遞到save()方法的文件替換現有的文件。
11、MongoDB 聚合
聚合操作處理資料記錄並返回計算結果。從多個文件聚合分組運算元值,並可以執行多種對分組資料業務返回一個結果。 在SQL中的count(*),使用group by 與mongodb的聚合是等效的。 對於MongoDB的聚合,使用的是aggregate()方法。
例子:
>use database_name //如果資料庫不存在,將建立一個新的資料庫,否則將返回現有的資料庫;>db //檢查當前選擇的資料庫;
>show dbs //查詢資料庫列表, 新建立的資料庫不會在於列表中。要顯示的資料庫,需要至少插入一個文件進去;
2、向資料庫插入資料
db.COLLECTION_NAME.insert(document)
>db.student.insert({sno: 1001, name: "sxj", sex: "male"}) 或者
>db.student.save({sno: 1002, name:
"sxj", sex: 1}3、刪除資料庫
>db.dropDatabase() //用於刪除現有的資料庫;
4、建立集合
db.createCollection(name, options) 用於建立集合,name (String型別)是要建立集合的名稱, options(Document型別,可選項)是一個文件,用於指定集合的配置(指定有關記憶體大小和索引選項)。
>db.createCollection("student") //建立集合 student
>show collections //檢視建立的集合
>db.createCollection("mycollection", {capped: true, autoIndexID: true, size: 6142800, max: 10000 } )
其實在MongoDB中並不需要建立集合。 當插入一些文件時 MongoDB 會自動建立集合。 5、刪除集合
>db.COLLECTION_NAME.drop() //從資料庫中刪除集合;
6、查詢文件
>db.COLLECTION_NAME.find()
>db.
COLLECTION_NAME
.find().pretty() //將結果格式化顯示;
>db.COLLECTION_NAME.findOne(condition) //不能用pretty()方法
limit(number)方法,限制查出的記錄數
sort(number)方法,用於跳過的檔案數
skip()方法,文件排序,使用1和-1指定排序順序。1用於升序,而-1是用於降序。
7、更新文件MongoDB的update()和save()方法用於更新文件到一個集合。 update()方法將現有的文件中的值更新,而save()方法使用傳遞到save()方法的文件替換現有的文件。
>db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA)
>db.student.update({'name':'sxj'},{$set:{'name':'zhangsan'}})
8、刪除文件
MongoDB 的 remove()方法用於從集合中刪除文件。remove()方法接受兩個引數。一個是標準缺失,第二是justOne標誌。deletion criteria : 根據檔案(可選)刪除條件將被刪除。justOne : (可選)如果有多個記錄,並要僅刪除第一條記錄,那麼設定justOne為true或1,只刪除一個文件。>db.COLLECTION_NAME.remove(DELLETION_CRITTERIA)
>db.student.remove({'name':'sxj'})
>db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)
如果沒有指定刪除條件,則MongoDB將從集合中刪除整個檔案。
>db.student.remove({})
9、MongoDB投影
mongodb投影意義是隻選擇需要的資料,而不是選擇整個一個文件的資料。如果一個文件有5個欄位,只需要顯示3個,只從中選擇3個欄位。
MongoDB的find()方法,解釋了MongoDB中查詢文件接收的第二個可選引數是要檢索的欄位列表。在MongoDB中,當執行find()方法,那麼它會顯示一個文件的所有欄位。要限制這一點,需要設定欄位列表值為1或0。1是用來顯示欄位,而0被用來隱藏欄位。
>db.COLLECTION_NAME.find({},{KEY:1})
10、MongoDB索引>db.COLLECTION_NAME.ensureIndex({KEY:1}) //這裡鍵是要建立索引欄位,1是按名稱升序排序。若以按降序建立索引,需要使用 -1.
索引支援查詢高效率執行。如果沒有索引,MongoDB必須掃描集合中的每一個文件,然後選擇那些符合查詢語句的文件。若需要MongoDB來處理大量資料,掃描是非常低效的。
索引是特殊的資料結構,儲存在一個易於設定遍歷形式的資料的一小部分。索引儲存在索引中指定特定欄位的值或一組欄位,並排序欄位的值。
要建立索引,需要使用MongoDB的ensureIndex()方法。
11、MongoDB 聚合
聚合操作處理資料記錄並返回計算結果。從多個文件聚合分組運算元值,並可以執行多種對分組資料業務返回一個結果。 在SQL中的count(*),使用group by 與mongodb的聚合是等效的。 對於MongoDB的聚合,使用的是aggregate()方法。
>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)
12、複製副本要轉換為副本集,按照以下的步驟:
- 關閉已經執行的 MongoDB 伺服器。
現在,通過指定--replSet選項啟動 MongoDB 伺服器。--replSet 的基本語法如下:
例子:
mongod --port 27017 --dbpath "D:\MongoDB\data\bin" --replSet rs0
這將啟動一個名為rs0的一個mongod例項,埠為: 27017
- 現在開啟啟動命令提示符,然後連線到mongod例項
- 在Mongo的客戶端使用命令rs.initiate()來啟動一個新的副本集
要檢查副本設定配置,則使用命令rs.conf()
要檢查副本集發行的狀態,使用命令rs.status()
>mongodump //轉儲伺服器的所有資料到轉儲目錄
>mongorestore //從備份目錄恢復所有的資料