1. 程式人生 > >MongoDB簡介與增刪改查

MongoDB簡介與增刪改查

正則 刪除 技術分享 b數 布爾 創建數據庫 結構 關鍵字 使用

一、簡介

MongoDB 是由C++語言編寫的,是一個基於分布式文件存儲的開源數據庫系統。MongoDB 旨在為WEB應用提供可擴展的高性能數據存儲解決方案。MongoDB 將數據存儲為一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB 文檔類似於 JSON 對象。字段值可以包含其他文檔,數組及文檔數組。

mongodb數據類型:

數據類型描述
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 正則表達式類型。用於存儲正則表達式。

二、操作

1、數據庫操作指令

(1)創建數據庫

命令:use dbname ,例:use test 如果數據庫test存在則選中test數據庫,如果不存在則創建數據庫test。

(2)查看所有數據庫

命令:show dbs

(3)刪除數據庫

命令:db.dropDatabase() 即可刪除當前數據庫

2、文檔操作指令

mongodb中的文檔相當於關系型數據庫中的row,文檔的數據結構BSON和JSON基本一樣。

(1)插入文檔

MongoDB 使用 insert() 或 save() 方法向集合中插入文檔,語法如下:db.COLLECTION_NAME.insert(document).

例:db.mycol.insert({name:‘test1‘,age:20,sex:‘male‘}),其中mycol是集合名稱,如果該集合不存在則mongodb會先自動創建。

也可以使用db.COLLECTION_NAME.save(document)插入文檔,類似於insert,如果指定了_id字段則更新該_id的文檔。

(2)更新文檔

mongodb使用update或者save更新文檔,update語法:

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

query:update的查詢條件;

update:update的對象和一些更新的操作符(如$,$inc...)等,也可以理解為sql update查詢內set後面的;

upsert:可選,這個參數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,默認是false,不插入。

multi:可選,mongodb 默認是false,只更新找到的第一條記錄,如果這個參數為true,就把按條件查出來多條記錄全部更新。

writeConcern:可選,拋出異常的級別。

例:首先插入一條文檔:db.mycol.insert({name:‘test1‘,age:1,sex:‘male‘}),然後再執行更新操作:db.mycol.update({‘name‘:‘test1‘},{$set:{‘sex‘:‘formale‘}})結果如下:

技術分享圖片

如果需要修改符合條件的多條文檔則把multi設為true。例:db.mycol.update({‘name‘:‘test1‘},{$set:{‘sex‘:‘formale‘}},{multi:true})

save方法:通過傳入的文檔來替換已有文檔。語法格式如下:

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

document:文檔數據,writeConcern:拋出異常的級別。

  (3)刪除文檔

  mongodb使用db.col.remove()來刪除文檔,語法結構如下(2.6版本之前):

db.collection.remove(
<query>,
<justOne>
)

2.6版本之後:

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

  query(可選):刪除的條件,justOne(可選):如果設置為true或1則只刪除一條,writeConcert(可選):拋出異常的級別。

  例:db.mycol.remove({‘name‘:‘test1‘})

  (3)查詢文檔

  db.COLLECTION_NAME.find()方法以非結構化的方式顯示所有數據,db.COLLECTION_NAME.find().pretty()方法以格式化的方式顯示所有數據。除此之外還有findOne()方法只顯示一個文檔。

  mongodb與關系型數據庫where比較:

操作格式範例RDBMS中的類似語句
等於 {<key>:<value>} db.col.find({"by":"菜鳥教程"}).pretty() where by = ‘菜鳥教程‘
小於 {<key>:{$lt:<value>}} db.col.find({"likes":{$lt:50}}).pretty() where likes < 50
小於或等於 {<key>:{$lte:<value>}} db.col.find({"likes":{$lte:50}}).pretty() where likes <= 50
大於 {<key>:{$gt:<value>}} db.col.find({"likes":{$gt:50}}).pretty() where likes > 50
大於或等於 {<key>:{$gte:<value>}} db.col.find({"likes":{$gte:50}}).pretty() where likes >= 50
不等於 {<key>:{$ne:<value>}} db.col.find({"likes":{$ne:50}}).pretty() where likes != 50

mongodb AND條件:mongodb的find()方法可以傳入多個鍵(key),每個鍵用逗號,隔開,語法格式如下:

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

例:db.mycol.find({‘name‘:‘tes1‘,‘sex‘:‘formale‘}).pretty() ,該句的效果類似sql: where name=‘test1‘ and sex=‘formale‘,

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

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

原文來自:https://www.cnblogs.com/onephp/p/6252472.html

MongoDB簡介與增刪改查