MongoDB是一個高性能,開源,無模式的文檔型數據庫,是當前NoSQL數據庫產品中最熱門的一種。數據被分組存儲在數據集中,被稱爲一個集合(Collenction)和對於存儲在MongoDB數據庫中的文件,我們不需要知道它的任何結構定義的自由模式,在存儲數據時是以鍵-值對的集合鍵是字符串,值可以是數據類型集合裏的任意類型,包括數組和文檔。
MongoDB存儲在集合中的所有文件,集合是一組有一組共享公共索引的相關文檔,集合類似於關係數據庫中的表。在MongoDB中,這些操作修改單個採集數據,爲更新和添加,刪除操作。我們先認識一下MongDB結構:
MongoDB |
關係數據庫 |
數據庫(database) |
數據庫(database) |
集合(collection) |
表(table) |
文檔(document) |
行(row) |
集合(collection)
文檔(document)
1. 添加一個新的文檔到集合語法
例子:
相對於SQL語句是:
2.同時添加多個文檔,可以傳入數組
3.添加文檔再包含文檔的(層級三級)
例子:
說明:
存儲在MongoDB集合中的每個文檔(document)都有一個默認的主鍵_id,這個主鍵名稱是固定的,它可以是MongoDB支持的任何數據類型,默認是ObjectId
1.對文檔查詢的語法,我們在這邊做簡單的介紹,我們會專門的寫一篇比較詳細的介紹
執行查詢所有的記錄
2.我們可以根據條件查詢
例子:
1. 對文檔進行修改的語法
參數 |
類型 |
描述 |
query |
document |
要修改哪些的查詢條件,類似於SQL 的 where |
update |
document |
要修改的字段對應的值 |
upsert |
boolean |
可選的,默認值是false。如果根據查詢條件沒找到對應的文檔,如果設置爲true,相當於執行insert,如果設置爲false,不做任何的操作。 |
multi |
boolean |
可選的,默認值是false。如果根據查詢條件找到對應的多條記錄是,如果設置爲false時,只修改第一條,如果設置爲true,全部更新 |
2.對單個字段進行修改
名稱 |
描述 |
$inc |
根據要添加的值遞增該字段的值。 |
$mul |
將該字段的值乘以指定的值 |
$rename |
重命名字段 |
$setOnInsert |
操作時,操作給相應的字段賦值 |
$set |
用來指定一個鍵的值,如果不存在則創建它 |
$unset |
用來指定一個鍵的值,如果不存在不創建創建它 |
$min |
只有當指定的值小於現有字段值時才更新該字段。 |
$max |
只有當指定的值大於現有字段值時才更新該字段。 |
$currentDate |
設置當前日期字段的值,或者作爲一個日期或時間戳。 |
我們接來對幾個比較常用的進行操作說明,其餘的語法都是一樣
2) 採用$set來根據查詢條件修改文檔,用來指定一個鍵的值,如果不存在則創建它。
例子:
SQL語句,如果set指定一個字段修改值時,如果沒有的話會報錯。
修改之前:
修改之後:
multi 設置爲true,全部更新
3)$mul 將該字段的值乘以指定的值
語法: