1. 程式人生 > >MongoDB資料庫操作常用語法

MongoDB資料庫操作常用語法

一、建立資料庫

建立:
use DATABASE_NAME(資料庫名稱)
如果資料庫不存在,則建立資料庫,否則切換到指定資料庫。
顯示所有資料庫:
show dbs
剛建立的資料庫,並不在資料庫的列表中, 要顯示它,我們需要向其中插入一些資料。
插入資料:
db.DATABASE_NAME.insert(data)
例子如下:
在這裡插入圖片描述
結果:
在這裡插入圖片描述

二、刪除資料庫

切換到指定資料庫:
use DATABASE_NAME(資料庫名稱)
刪除操作:
db.dropDatabase()
例子:
在這裡插入圖片描述

三、建立刪除集合

建立集合:
db.createCollection(name,options)
name:集合名稱
options:指定有關記憶體大小及索引的選項
當插入一些資料時,MongoDB 會自動建立集合。
檢視已有集合:


show collections
刪除集合:
db.collection.drop()
例子:
在這裡插入圖片描述

四、插入/更新/刪除/查詢資料

插入

插入資料:
db.COLLECTION_NAME.insert(document)
如果該集合不在該資料庫中, MongoDB 會自動建立該集合並插入文件。
例子:
在這裡插入圖片描述
插入一條資料:
db.COLLECTION_NAME.insertOne(document)
插入多條資料:
db.COLLECTION_NAME.insertMany(document)
例子:
在這裡插入圖片描述

修改

更新資料–update() 方法:
區域性更新

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

引數說明:
query : update的查詢條件,類似sql update查詢內where後面的。
update : update的物件和一些更新的操作符(如 , , inc…)等,也可以理解為sql update查詢內set後面的
upsert : 可選,這個引數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,預設是false,不插入。
multi : 可選,mongodb 預設是false,只更新找到的第一條記錄,如果這個引數為true,就把按條件查出來多條記錄全部更新。
writeConcern :可選,丟擲異常的級別。
例子:
在這裡插入圖片描述


更新資料–save() 方法:
整體替換

db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)

引數說明:
document : 文件資料。
writeConcern :可選,丟擲異常的級別。
例子:
在這裡插入圖片描述

查詢

查詢資料:
db.collection.find(query, projection)
query :可選,使用查詢操作符指定查詢條件
projection :可選,使用投影操作符指定返回的鍵。查詢時返回文件中所有鍵值, 只需省略該引數即可(預設省略)。
例子:
在這裡插入圖片描述
讀取資料:
db.collection.find().pretty()
按條件查詢:
大小:
在這裡插入圖片描述
AND和:(逗號隔開)
db.col.find({key1:value1, key2:value2}).pretty()
OR或:(陣列形式)

 db.col.find(
       {
          $or: [
             {key1: value1}, {key2:value2}
          ]
       }
    ).pretty()

例子:
在這裡插入圖片描述
查詢指定的幾條資料(Limit/Skip)
db.COLLECTION_NAME.find().limit(number).skip(number)
limit表示查詢的資料條數
skip表示跳過的資料條數
例子:
在這裡插入圖片描述
模糊查詢(/資料/):
db.COLLECTION_NAME.find({name: /資料/});
查詢以某資料開頭( /^資料/):
db.COLLECTION_NAME.find({name: /^資料/});
查詢指定列(資料:1):
db.COLLECTION_NAME.find({},{資料:1});
排序(sort(key:1/-1)):
db.COLLECTION_NAME.find().sort(KEY:1/-1)
1為升序,-1為降序
查詢某個結果集的記錄條數 統計數量(count()):
db.COLLECTION_NAME.find({age: {$gte: 25}}).count();
索引查詢
建立索引
db.COLLECTION_NAME.ensureIndex({“索引名”:1})
建立複合索引
db.COLLECTION_NAME.ensureIndex({“索引名1”:1,“索引名2”:1})
建立唯一索引
db.db.COLLECTION_NAME.ensureIndex({“索引名”:1},{“unique”:true})
獲取索引
db.COLLECTION_NAME.getIndexes()
刪除索引
db.COLLECTION_NAME.dropIndex({“索引名”:1})
explain查詢更多資訊
db.COLLECTION_NAME.find().explain()
explain(executionStats)獲取查詢時間
db.COLLECTION_NAME.find().explain(executionStats)

刪除

刪除資料:

db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)

引數說明:
query :(可選)刪除的文件的條件。
justOne : (可選)如果設為 true 或 1,則只刪除一個文件。
writeConcern :(可選)丟擲異常的級別。
例子:
刪除指定的資料
在這裡插入圖片描述
刪除一條:

db.col.deleteOne(<query>,
       {
         justOne: <boolean>,
         writeConcern: <document>
       }
)

全部刪除:
db.col.deleteMany({})
例子:
在這裡插入圖片描述