1. 程式人生 > >MongoDB資料庫的基本操作

MongoDB資料庫的基本操作

  • 建立資料庫
//use+資料庫名
>use mydb
//顯示當前選定的資料庫
>db
//檢視當前資料庫列表
>show dbs
//隱式建立集合
>db.movies.insert({"name","尖峰時刻"})
  • 刪除資料庫
//先切換到要刪除的資料庫
use mydb
db.dropDatabase()
  • 刪除集合
db.users.drop()
  • 建立集合
    -建立集合的時候可以指定配置項,設定集合的基本屬性
欄位 型別 描述
capped boolean (可選)如果為 true,則建立固定集合。固定集合是指有著固定大小的集合,當達到最大值時,它會自動覆蓋最早的文件。當該值為 true 時,必須指定 size 引數。
autoIndexID boolean (可選)如為 true,自動在 _id 欄位建立索引。預設為 false。
size 數值 (可選)為固定集合指定一個最大值(以位元組計)。如果 capped 為 true,也需要指定該欄位
max 數值 (可選)指定固定集合中包含文件的最大數量。
db.createCollection("movies")

db.createCollection("mycol", { capped : true, autoIndexID : true, size : 6142800, max : 10000 } )
  • 資料型別

    • String:字串。儲存資料常用的資料型別。在 MongoDB 中,UTF-8 編碼的字串才是合法的。
    • Integer:整型數值。用於儲存數值。根據你所採用的伺服器,可分為 32 位或 64 位。
    • Boolean:布林值。用於儲存布林值(真/假)。
    • Double:雙精度浮點值。用於儲存浮點值。-
    • Min/Max keys:將一個值與 BSON(二進位制的 JSON)元素的最低值和最高值相對比。
    • Arrays:用於將陣列或列表或多個值儲存為一個鍵。
    • Timestamp:時間戳。記錄文件修改或新增的具體時間。
    • Object:用於內嵌文件。
    • Null:用於建立空值。
    • Symbol:符號。該資料型別基本上等同於字串型別,但不同的是,它一般用於採用特殊符號型別的語言。
    • Date:日期時間。用 UNIX 時間格式來儲存當前日期或時間。你可以指定自己的日期時間:建立 Date 物件,傳入年月日資訊。
    • Object ID:物件 ID。用於建立文件的 ID。
    • Binary Data:二進位制資料。用於儲存二進位制資料。
    • Code:程式碼型別。用於在文件中儲存 JavaScript 程式碼。
    • Regular expression:正則表示式型別。用於儲存正則表示式。
  • 文件插入

dn.movies.insert({"name","尖峰時刻"})
  • 文件查詢 find()
//查詢集合中的所有資料
db.movies.find()

//格式化顯示查詢的結果集
db.movies.find().pretty()
  • 條件查詢

//等於
db.users.find("age":21) 
//小於
db.users.find("age":{$lt:21})
//小於等於
db.users.find("age":{$lte:21})
//大於
db.users.find("age":{$gt:21})
//大於等於
db.users.find("age":{$gte:21})
//不等於
db.users.find("age":{$ne:21})
  • and條件
db.user.find({"age":21,"name":"xul"})
  • or條件
db.user.find({$or:[{"age":21},{"name":"xul"}]})
  • and 和or條件
db.user.find({"age":21,$or:[{"name":"xul"},{"sex":"man"}]})
  • 更新操作
    • 基本格式
    • db.user.update(query,update,upset,multi)
    • query : 修改是的過濾條件
    • update : 要更新的欄位
    • upset:未發現複合的資料,是否進行插入(true插入)
    • multi:是否進行多行更新(true 多行更新)
db.user.update({"age":21},{$set:{"name":"updatetest"}},0,1)
  • 刪除文件
//可新增過濾條件,使用與find相同
db.user.remove()
  • 對映
//對映就是隻顯示集合中的某些欄位,1:顯示,0:不顯示
db.user.find({},{"age":1,"name":0})
  • 分頁

    • limit() 設定要顯示的條數
    • skip() 設定從第幾條開始顯示
db.user.find().limit(1).skip(1)
  • 排序

    • sort(key:1) 指定排序欄位,1:升序,-1:降序
db.user.find().sort("name":-1)