真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

NoSQL數(shù)據(jù)庫一MongoDB基本使用-創(chuàng)新互聯(lián)

如今的網(wǎng)站對數(shù)據(jù)存儲要求越來越靈活,在這種需求下 NoSQL 也就是非關系數(shù)據(jù)庫越來越流行。所謂非關系數(shù)據(jù)庫,是指不使用 SQL 語言進行數(shù)據(jù)操作的數(shù)據(jù)庫的統(tǒng)稱。這類數(shù)據(jù)庫存儲數(shù)據(jù)時沒有固定的模式,不支持數(shù)據(jù)表 join 的操作,可以很方便的進行橫向擴展。非關系數(shù)據(jù)庫種類很多,其中 MongoDB 和 Redis 應用廣泛。

創(chuàng)新互聯(lián)建站是由多位在大型網(wǎng)絡公司、廣告設計公司的優(yōu)秀設計人員和策劃人員組成的一個具有豐富經(jīng)驗的團隊,其中包括網(wǎng)站策劃、網(wǎng)頁美工、網(wǎng)站程序員、網(wǎng)頁設計師、平面廣告設計師、網(wǎng)絡營銷人員及形象策劃。承接:網(wǎng)站設計、成都網(wǎng)站設計、網(wǎng)站改版、網(wǎng)頁設計制作、網(wǎng)站建設與維護、網(wǎng)絡推廣、數(shù)據(jù)庫開發(fā),以高性價比制作企業(yè)網(wǎng)站、行業(yè)門戶平臺等全方位的服務。

一、MongoDB介紹

MongoDB 是一個是一個基于分布式文件存儲的數(shù)據(jù)庫,介于關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫之間,是非關系數(shù)據(jù)庫當中功能最豐富,最像關系數(shù)據(jù)庫的。他支持的數(shù)據(jù)結構非常松散,是類似json的bson格式,因此可以存儲比較復雜的數(shù)據(jù)類型。Mongo大的特點是他支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現(xiàn)類似關系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。

二、安裝MongoDB

MongoDB安裝很簡單,無需下載源文件,可以直接用apt-get命令進行安裝。
打開終端,輸入以下命令:
sudo apt-get install mongodb
安裝完成后,在終端輸入以下命令查看MongoDB版本:
mongo -version
輸出版本信息,表明安裝成功

啟動和關閉mongodb命令如下:

service mongodb start
service mongodb stop

默認設置MongoDB是隨Ubuntu啟動自動啟動的。
輸入以下命令查看是否啟動成功:
pgrep mongo -l #注意:-l是英文字母l,不是阿拉伯數(shù)字1

卸載MongoDB
sudo apt-get --purge remove mongodb mongodb-clients mongodb-server

三、使用MongoDB

shell命令模式
輸入mongo進入shell命令模式,默認連接的數(shù)據(jù)庫是test數(shù)據(jù)庫,在此之前一定要確保你已經(jīng)啟動了MongoDB,否則會出現(xiàn)錯誤,啟動之后運行成功,如下截圖:
NoSQL數(shù)據(jù)庫一MongoDB基本使用
MongoDB 存儲的文檔記錄是一個 BSON 對象,類似于 JSON 對象,由鍵值對組成。比如一條用戶記錄:

{
    name: "Aiden",
    age: 30,
    email: "luojin@simplecloud.cn"
}

每一個文檔都有一個 id 字段,該字段是主鍵,用于唯一的確定一條記錄。如果往 MongoDB 中插入數(shù)據(jù)時沒有指定 id 字段,那么會自動產(chǎn)生一個 id 字段,該字段的類型是 ObjectId,長度是 12 個字節(jié)。在 MongoDB 文檔的字段支持字符串,數(shù)字,時間戳等類型。一個文檔大可以達到 16M, 可以存儲相當多的數(shù)據(jù)。

常用操作命令:
數(shù)據(jù)庫相關

  • show dbs:顯示數(shù)據(jù)庫列表
  • show collections:顯示當前數(shù)據(jù)庫中的集合(類似關系數(shù)據(jù)庫中的表table)
  • show users:顯示所有用戶
  • use yourDB:切換當前數(shù)據(jù)庫至yourDB
  • db.help() :顯示數(shù)據(jù)庫操作命令
  • db.yourCollection.help() :顯示集合操作命令,yourCollection是集合名

先嘗試往 MongoDB 中插入一條數(shù)據(jù):

$ mongo
> use shiyanlou
> db.user.insertOne({name: "Aiden", age: 30, email: "luojin@simplecloud.cn", addr: ["CD", "SH"]})
{
        "acknowledged" : true,
        "insertedId" : ObjectId("59a8034064e0acb13483d512")
}
> show databases;
admin      0.000GB
local      0.000GB
shiyanlou  0.000GB
> show collections;
user

可以看到,在插入數(shù)據(jù)前使用 use 指令,切換到了 shiyanlou 數(shù)據(jù)庫,盡管該數(shù)據(jù)庫暫時不存在,但當我們插入數(shù)據(jù)后,該數(shù)據(jù)庫就被自動創(chuàng)建了。show databases 和 show collection 分別顯示了當前存在的數(shù)據(jù)庫和當前數(shù)據(jù)庫的所有文檔集合。而且數(shù)據(jù)插入后,自動添加了 id 字段。插入多條數(shù)據(jù),可以使用 db.collection.insertMany 方法:

> db.user.insertMany([
... {name: "lxttx", age: 28, email: "lxttx@simplecloud.cn", addr: ["BJ", "CD"]},
... {name: "jin", age: 31, email: "jin@simplecloud.cn", addr: ["GZ", "SZ"]},
... {name: "nan", age: 26, email: "nan@simplecloud.cn", addr: ["NJ", "AH"]}
... ])
{
        "acknowledged" : true,
        "insertedIds" : [
                ObjectId("59a8034564e0acb13483d513"),
                ObjectId("59a8034564e0acb13483d514"),
                ObjectId("59a8034564e0acb13483d515")
        ]
}

添加的數(shù)據(jù)其結構是松散的,只要是bson格式均可,列屬性均不固定,根據(jù)添加的數(shù)據(jù)為準。先定義數(shù)據(jù)再插入,就可以一次性插入多條數(shù)據(jù),運行完以上例子,庫自動創(chuàng)建,這也說明 MongoDB 不需要預先定義 collection ,在第一次插入數(shù)據(jù)后,collection 會自動的創(chuàng)建。

查詢數(shù)據(jù)可以使用 db.collection.find 方法,可以指定查詢過濾條件:

> db.user.find()
{ "_id" : ObjectId("59a8034064e0acb13483d512"), "name" : "Aiden", "age" : 30, "email" : "luojin@simplecloud.cn", "addr" : [ "CD", "SH" ] }
{ "_id" : ObjectId("59a8034564e0acb13483d513"), "name" : "lxttx", "age" : 28, "email" : "lxttx@simplecloud.cn", "addr" : [ "BJ", "CD" ] }
{ "_id" : ObjectId("59a8034564e0acb13483d514"), "name" : "jin", "age" : 31, "email" : "jin@simplecloud.cn", "addr" : [ "GZ", "SZ" ] }
{ "_id" : ObjectId("59a8034564e0acb13483d515"), "name" : "nan", "age" : 26, "email" : "nan@simplecloud.cn", "addr" : [ "NJ", "AH" ] }

> db.user.find({name: "jin"})
{ "_id" : ObjectId("59a8034564e0acb13483d514"), "name" : "jin", "age" : 31, "email" : "jin@simplecloud.cn", "addr" : [ "GZ", "SZ" ] }

> db.user.find({age: {$gt: 30}})
{ "_id" : ObjectId("59a8034564e0acb13483d514"), "name" : "jin", "age" : 31, "email" : "jin@simplecloud.cn", "addr" : [ "GZ", "SZ" ] }

> db.user.find({addr: "CD"})
{ "_id" : ObjectId("59a8034064e0acb13483d512"), "name" : "Aiden", "age" : 30, "email" : "luojin@simplecloud.cn", "addr" : [ "CD", "SH" ] }
{ "_id" : ObjectId("59a8034564e0acb13483d513"), "name" : "lxttx", "age" : 28, "email" : "lxttx@simplecloud.cn", "addr" : [ "BJ", "CD" ] }

上面例子中,我們先通過 db.user.find() 獲取到了之前插入的全部數(shù)據(jù)。接著使用不同的過濾條件進行了查詢,其中有一些查詢如 {age: {$gt: 30}} 表示查詢年齡大于 30 的用戶。還可以發(fā)現(xiàn)查詢數(shù)組中是否存在某一元素也非常方便,上面的例子中查詢出了所有地址含有 CD 用戶。

MongoDB 的查詢功能非常強大,可以組合各種查詢條件,更多的使用方法可以學習實驗樓的其他課程。更新數(shù)據(jù)主要通過 db.user.updateOne 或者 db.user.updateMany 方法,前者更新一條記錄,后者更新多條記錄:

> db.user.updateOne(
... {name: "Aiden"},
... {$set: {age: 29, addr: ["CD", "SH", "BJ"]}}
... )
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
> db.user.find({name: "Aiden"})
{ "_id" : ObjectId("59a8034064e0acb13483d512"), "name" : "Aiden", "age" : 29, "email" : "luojin@simplecloud.cn", "addr" : [ "CD", "SH", "BJ" ] }

可以看到成功的更新了一條記錄。刪除數(shù)據(jù)也非常簡單,可以通過 db.user.deleteMany 或db.user.deleteOne 方法:

> db.user.deleteMany({addr: "CD"})
{ "acknowledged" : true, "deletedCount" : 2 }
> db.user.find()
{ "_id" : ObjectId("59a8034564e0acb13483d514"), "user" : "jin", "age" : 31, "email" : "jin@simplecloud.cn", "addr" : [ "GZ", "SZ" ] }
{ "_id" : ObjectId("59a8034564e0acb13483d515"), "user" : "nan", "age" : 26, "email" : "nan@simplecloud.cn", "addr" : [ "NJ", "AH" ] }

上面的命令成功的刪除所有地址包含 "CD" 的用戶,共刪除了兩條記錄。

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


名稱欄目:NoSQL數(shù)據(jù)庫一MongoDB基本使用-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://weahome.cn/article/dpodgh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部