二、MongoDB學習筆記~數據庫基本操作

一、數據庫操作

  • 新建
use test
  • 查看
db

或者:

show dbs

注意:數據庫中如果沒有數據,show dbs是不會展示數據的

插入一些數據:

db.test.insert({"name":"lizza"})
  • 刪除
-- 查看有哪些庫
show dbs
-- 切換數據庫
use test1
-- 刪除數據庫
db.dropDatabase()

二、集合操作

  • 創建集合
db.createCollection(name, options)

參數說明:

  • name: 要創建的集合名稱
  • options: 可選參數,指定有關內存大小及索引的選項
字段 類型 描述
capped 布爾 (可選)如果爲 true,則創建固定集合。固定集合是指有着固定大小的集合,當達當該值爲 true 時,必須指定 size 參數。到最大值時,它會自動覆蓋最早的文檔。
autoIndexId 布爾 (可選)如爲 true,自動在 _id 字段創建索引。默認爲 false。
size 數值 (可選)爲固定集合指定一個最大值,以千字節計(KB)。如果 capped 爲 true,也需要指定該字段。
max 數值 (可選)指定固定集

示例:

use test
db.createCollection("user")
  • 查看已有集合
show collections

注意:在MongoDB中不需要創建集合,當用戶插入一些文檔時,MongoDB會自動創建集合

  • 刪除集合

語法:

db.collection_name.drop()

示例:

db.test.drop()

三、文檔操作

  • 插入文檔

語法:

db.collection_name.insert(document)

示例:

db.test.insert({name: 'robert', sex: 'male', age: '18', tags: ['mongodb', 'database', 'NoSQL'], address: {ip: '0.0.0.0', name: '黑龍江佳木斯'}})
  • 查看已插入的文檔
db.test.find()

在這裏插入圖片描述

  • 插入一條
db.test.insertOne({a: 1})
  • 插入多條
db.collection.insertMany({a: 1, b: 2})
  • 更新文檔

語法

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,不插入
  • mult:可選,mongodb 默認是false,只更新找到的第一條記錄,如果這個參數爲true,就把按條件查出來多條記錄全部更新
  • writeConcern:可選,拋出異常的級別

示例:

db.test.update({name: 'lizza'}, {$set:{name: 'Lizza'}})
  • 刪除文檔

語法:

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

參數說明:

  • query:(可選)刪除的文檔的條件
  • justOne :(可選)如果設爲 true 或 1,則只刪除一個文檔,如果不設置該參數,或使用默認值 false,則刪除所有匹配條件的文檔
  • writeConcern:(可選)拋出異常的級別

示例:

db.test.remove({name: 'Lizza'})
  • 查詢文檔

語法:

db.test.find(query, projection)
  • query:可選,使用查詢操作符指定查詢條件
  • projection:可選,使用投影操作符指定返回的鍵。查詢時返回文檔中所有鍵值, 只需省略該參數即可(默認省略)
  • MongoDB與RDBMS Where語句比較
操作 格式 範例 RDBMS中的類似語句
等於 { : } db.col.find({“name” : “robert”}).pretty() where name = ‘robert’
小於 { : {$lt : }} db.col.find({“age” : {$lt: 50}}).pretty() where age < 50
小於或等於 { : {$lte : }} db.col.find({“age” : {$lte : 50}}).pretty() where age <= 50
大於 { : {$gt : }} db.col.find({“age” : {$gt : 50}}).pretty() where age > 50
大於或等於 { : {$gte : }} db.col.find({“age” : {$gte : 50}}).pretty() where age >= 50
不等於 { : {$ne : }} db.col.find({“age” : {$ne:50}}).pretty() where age != 50
  • MongoDB AND條件

MongoDB的find()方法可以傳入多個鍵(key),每個鍵(key)以逗號隔開,即常規SQL的AND條件

語法格式如下:

db.test.find({key1:value1, key2:value2}).pretty()

  • 示例:
db.test.find({name : 'robert', age : '18'}).pretty()

在這裏插入圖片描述

  • MongoDB OR條件

MongoDB OR條件語句使用了關鍵字$or,語法格式如下:

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

示例:

db.test.find({$or : [{age : '15'}, {age : '18'}]}).pretty()
  • 模糊查詢
-- 查詢name中包含r的
db.test.find({name : /r/})
-- 查詢name中以r開頭的
db.test.find({name : /^r/})
-- 查詢name中以r結尾的
db.test.find({name : /r$/})
  • MongoDB $type 操作符

$type操作符是基於BSON類型來檢索集合中匹配的數據類型,並返回結果

類型 數字 備註
Double 1
String 2
Object 3
Array 4
Binarydata 5
Undefined 6 已廢棄。
Objectid 7
Boolean 8
Date 9
Null 10
RegularExpression 11
JavaScript 13
Symbol 14
JavaScript(withscope) 15
32-bitinteger 16
Timestamp 17
64-bitinteger 18
Minkey 255 Querywith-1.
Maxkey 127

示例:

-- 查詢所有結果集
db.test.find().pretty()

在這裏插入圖片描述

-- 查詢name類型爲string的數據
db.test.find({name : {$type : 2}})
db.test.find({title : {$type : 'string'}})

在這裏插入圖片描述

  • Limit方法

如果需要在MongoDB中讀取指定數量的數據記錄,可以使用MongoDB的Limit方法,limit()方法接受一個數字參數,該參數指定從MongoDB中讀取的記錄條數

語法:

db.collection_name.find().limit(number)
  • Skip方法

skip()方法用來跳過指定數量的數據,skip方法同樣接受一個數字參數作爲跳過的記錄條數

語法:

db.collection_name.find().limit(number).skip(number)

limit()和skip()方法組合使用可以實現分頁需求

  • MongoDB排序(sort()方法)

在MongoDB中使用sort()方法對數據進行排序,sort()方法可以通過參數指定排序的字段,並使用1和-1來指定排序的方式,其中1爲升序排列,而-1是用於降序排列

語法:

db.collection_name.find().sort({key : 1})

示例:

db.test.find().sort({name : 1})
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章