成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

mongodb

XFLY / 3100人閱讀

摘要:歷史年來(lái)的下載,安裝訪問(wèn)官網(wǎng)下載其中文社區(qū)一個(gè)可視化工具或者因?yàn)槟承┚壒?,?dǎo)致燈塔國(guó)的東東很慢很慢一直感覺(jué)安裝的。。。這意味著可以往集合里插入任何的格式。

MongDB
MongDB一種面向文檔的數(shù)據(jù)庫(kù)管理系統(tǒng),由C++寫成。
官網(wǎng) https://www.mongodb.com/
github https://github.com/mongodb/mongo

NoSQL

NoSQL不使用SQL作為查詢語(yǔ)言。其數(shù)據(jù)的儲(chǔ)存可以不需要固定的表格形式。也會(huì)經(jīng)常的被使用sql的join

特點(diǎn)

通常提供弱的一致性保護(hù), 但保證最終的一致性。

關(guān)系型數(shù)據(jù)庫(kù)遵守的特點(diǎn)

ACID
即 A 原子性 事物中的操作要么全做,要么都做
C 一致性 數(shù)據(jù)庫(kù)一直要處于一致的狀態(tài)
I 獨(dú)立性 并發(fā)事物之間不會(huì)相互影響(即 三級(jí)封鎖協(xié)議,鎖的形成)
D 持久性 數(shù)據(jù)庫(kù)提交完成以后持久保存

分布式系統(tǒng)

分布式系統(tǒng)是由多臺(tái)計(jì)算機(jī)和通信軟件組成,通過(guò)網(wǎng)絡(luò)相互連接。分布式系統(tǒng)是建立在網(wǎng)絡(luò)之上的系統(tǒng)。分布式系統(tǒng)的區(qū)別在于操作系統(tǒng)。

分布式系統(tǒng)的優(yōu)點(diǎn)

可靠性(容錯(cuò)機(jī)制)可擴(kuò)展性(可以隨意的增加更多的機(jī)器)資源共享(數(shù)據(jù)之間可以共享)靈活性(由于該系統(tǒng)是非常靈活的,易于安裝)更快的速度(分布式計(jì)算擁有更快的計(jì)算能力,易于進(jìn)行更多的計(jì)算)開放系統(tǒng)(由于其系統(tǒng)是開放,本地和遠(yuǎn)程都可直接訪問(wèn))更高的性能(相比于集群,擁有更高的性能)

缺點(diǎn)

故障不易排除,擁有更少的軟件,網(wǎng)絡(luò)問(wèn)題,安全性問(wèn)題

RDBMS 和 NoSQL RDBMS

為關(guān)系型數(shù)據(jù)庫(kù)的基礎(chǔ)
擁有高度的組織化結(jié)構(gòu)數(shù)據(jù)
擁有結(jié)構(gòu)化查詢語(yǔ)言
數(shù)據(jù)和關(guān)系都儲(chǔ)存在多帶帶的表中
嚴(yán)格的一致性
基礎(chǔ)的事物

NoSQL

沒(méi)有聲明式查詢語(yǔ)言
沒(méi)有預(yù)定義模式
鍵值對(duì)儲(chǔ)存,列儲(chǔ)存,文檔儲(chǔ)存,圖形數(shù)據(jù)庫(kù)
最終的一致性而不保證過(guò)程的一致性
非結(jié)構(gòu)化和不可預(yù)知的數(shù)據(jù)
CAP定理
高性能,高可用性和高伸縮性

CAP定理

CAP定理被稱為布魯爾定理,對(duì)于分布式系統(tǒng)來(lái)說(shuō),不可能滿足以下三點(diǎn)
一致性 (等同于所有節(jié)點(diǎn)訪問(wèn)同一份最新數(shù)據(jù)的副本)
可用性 (每次請(qǐng)求都能獲取到非錯(cuò)誤的響應(yīng))
分區(qū)容錯(cuò)性(系統(tǒng)中任意錯(cuò)誤都不會(huì)導(dǎo)致錯(cuò)誤的丟失)
更多 https://ja.wikipedia.org/wiki...
根據(jù)CAP原理 將數(shù)據(jù)庫(kù)分類如下 滿足 CA 原則、滿足 CP 原則和滿足 AP 原則的三大類

BASE

BASE:Basically Available, Soft-state, Eventually Consistent。
BASE是NoSQL數(shù)據(jù)庫(kù)通常對(duì)可用性及一致性的弱要求原則

NoSQL數(shù)據(jù)庫(kù)分類

列儲(chǔ)存 | 按照列儲(chǔ)存數(shù)據(jù) | 代表
--------|--------------| Hbase
文檔儲(chǔ)存 | 類似于JSON的格式,儲(chǔ)存的內(nèi)容是文檔類型的,這樣有機(jī)會(huì)對(duì)某些字段建立索引,實(shí)現(xiàn)關(guān)系數(shù)據(jù)庫(kù)的某些功能。| Mongdb
key-value 儲(chǔ)存 | 通過(guò)key快速查詢到value | Redis
圖儲(chǔ)存 | 圖形儲(chǔ)存 | Flockdb 來(lái)自于推特
對(duì)象儲(chǔ)存 | 通過(guò)面向?qū)ο蟮恼Z(yǔ)法來(lái)操作數(shù)據(jù)庫(kù) | Versant
xml數(shù)據(jù) | 儲(chǔ)存XML數(shù)據(jù) | http://basex.org/

誰(shuí)在用

Google((^__^) 嘻嘻……)
http://digg.com/
https://www.mheducation.com/h...
http://digital.vpr.net
https://foursquare.com/

MongoDB

由C++編寫,MongoDB將數(shù)據(jù)儲(chǔ)存為一個(gè)文檔
數(shù)據(jù)結(jié)構(gòu)由鍵值對(duì)組成。其文檔類似于JSON對(duì)象

 特點(diǎn)

豐富的表達(dá)式,支持任何索引,負(fù)載的增加,批量處理和聚合操作等等。。。。

歷史

2007年來(lái)的

MongDB下載,安裝

訪問(wèn)官網(wǎng)下載 https://www.mongodb.com/downl...
其中文社區(qū) http://www.mongoing.com/
一個(gè)可視化工具 https://www.nosqlclient.com/
或者 http://mms.litixsoft.de/index...

因?yàn)槟承┚壒?,?dǎo)致燈塔國(guó)的東東很慢很慢
一直感覺(jué)安裝的。。。很炫酷。。
沒(méi)辦法。。。燈塔國(guó)的。。好吧,安裝完畢

設(shè)置數(shù)據(jù)目錄
PS C:> cd data
PS C:data> ls
PS C:data> mkdir db


    目錄: C:data


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2018/7/31      2:37                db


PS C:data> ls


    目錄: C:data


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2018/7/31      2:37                db


PS C:data> cd db
PS C:datadb>
設(shè)置環(huán)境變量

C:Program FilesMongoDBServer4.0bin

打開Powershell
PS C:Program FilesMongoDBServer4.0in> mongod  -dbpath c:datadb

執(zhí)行mongod創(chuàng)建數(shù)據(jù)目錄

連接
PS C:UsersmingmDesktop> mongo.exe
MongoDB shell version v4.0.0
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 4.0.0
Server has startup warnings:
2018-07-31T02:32:28.615+0800 I CONTROL  [initandlisten]
2018-07-31T02:32:28.616+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2018-07-31T02:32:28.616+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2018-07-31T02:32:28.616+0800 I CONTROL  [initandlisten]
---
Enable MongoDB"s free cloud-based monitoring service to collect and display
metrics about your deployment (disk utilization, CPU, operation statistics,
etc).

The monitoring data will be available on a MongoDB website with a unique
URL created for you. Anyone you share the URL with will also be able to
view this page. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.

To enable free monitoring, run the following command:
db.enableFreeMonitoring()
---

>
可視化連接

mongodb://127.0.0.1:27017
將其復(fù)制上去就行了

ok好啦,至此安裝完成
這是一個(gè)JavaScript shell
(^o^)/ 瞬間擁有親切感。
js的語(yǔ)言終于可以再次用上

mongodb概念解析
sql mongodb 解釋/說(shuō)明
databass databass 數(shù)據(jù)庫(kù)
table collection 數(shù)據(jù)庫(kù)表/集合
row document 行/文檔
colunm field 字段/域
index index 索引
table joins 表連接
primary key primary key 主鍵/nongodb自動(dòng)將_id設(shè)置為主鍵

一張圖說(shuō)明

數(shù)據(jù)插入集合中,該文檔就會(huì)被創(chuàng)建

合法的集合名

集合名不能是空字符串
集合名不能含有0
集合名不能以system開頭
創(chuàng)建的集合名不能有保留字,因?yàn)橄到y(tǒng)生成的集合包含有$

元數(shù)據(jù)

數(shù)據(jù)庫(kù)的信息存儲(chǔ)在集合中,使用了系統(tǒng)命名的空間

mongodb數(shù)據(jù)類型 Objectid

唯一主鍵包含12位。

前 4 個(gè)字節(jié)表示創(chuàng)建 unix 時(shí)間戳,格林尼治時(shí)間 UTC 時(shí)間,比北京時(shí)間晚了 8 個(gè)小時(shí)
接下來(lái)的 3 個(gè)字節(jié)是機(jī)器標(biāo)識(shí)碼
緊接的兩個(gè)字節(jié)由進(jìn)程 id 組成 PID
最后三個(gè)字節(jié)是隨機(jī)數(shù)

類似于這樣的

5b5f65cc12df191848c2c72f
字符串

字符串為utf-8編碼

事件戳
前32位是一個(gè) time_t 值(與Unix新紀(jì)元相差的秒數(shù))
后32位是在某秒中操作的一個(gè)遞增的序數(shù)
日期

格林尼治時(shí)間

> var mydate1 = new Date()
> mydatel
ISODate("2018-07-30T19:26:17.080Z")
>
> Date()
Tue Jul 31 2018 03:27:07 GMT+0800
>
連接

mongodb:

創(chuàng)建數(shù)據(jù)庫(kù)
> use Date
switched to db Date
> db
Date
>

查看所有數(shù)據(jù)庫(kù)

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
>

由于不存在,需要顯示,向其插入數(shù)據(jù)

> db.Date.insert({"name":"ming"});
WriteResult({ "nInserted" : 1 })
> show dbs;
Date    0.000GB
admin   0.000GB
config  0.000GB
local   0.000GB
>
刪除數(shù)據(jù)庫(kù)
> show dbs;
Date    0.000GB
admin   0.000GB
config  0.000GB
local   0.000GB
> use Date
switched to db Date
> db.dropDatabase()
{ "dropped" : "Date", "ok" : 1 }
>
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
>
刪除集合
> show dbs;
admin   0.000GB
config  0.000GB
local   0.000GB
> use local
switched to db local
> show tabls;
2018-07-31T03:34:06.601+0800 E QUERY    [js] Error: don"t know how to show [tabls] :
shellHelper.show@src/mongo/shell/utils.js:1043:11
shellHelper@src/mongo/shell/utils.js:755:15
@(shellhelp2):1:1
> show tables;
mycoll
startup_log
> db.mycoll.drop();
true
> show tables;
startup_log
>
創(chuàng)建集合
> show dbs;
admin   0.000GB
config  0.000GB
local   0.000GB
> use local
switched to db local
> db.createCollection("ming");
{ "ok" : 1 }
> show collections;
ming
startup_log
>

在MongoDB中,不需要?jiǎng)?chuàng)建集合,在插入一些文檔的時(shí)候,會(huì)自動(dòng)創(chuàng)建集合

> db.mycol2.insert({"name":"ming"});
WriteResult({ "nInserted" : 1 })
> show collections;
ming
mycol2
startup_log
刪除集合
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
> use local
switched to db local
> show collections;
ming
mycol2
startup_log
> db.mycol2.drop();
true
> show collections;
ming
startup_log
>
插入文檔

即插入row
所有的儲(chǔ)存格式是一種JSON格式的

> db.col.insert({title:"ming",
... ming:"sdfdf"});
WriteResult({ "nInserted" : 1 })
> db.col.find();
{ "_id" : ObjectId("5b5f6a0ed595bb04cbe14b94"), "title" : "ming", "ming" : "sdfdf" }
>

也可以將數(shù)據(jù)定義為一種變量
都是js的語(yǔ)法。不難,很好上手的
還有一個(gè)方法是 insertOne 以及insertMany 分別插入一行或者多行

MongoDB更新文檔

使用update()的方法進(jìn)行更新

> db.col.insert({title:"ming",ming:"ming"});
WriteResult({ "nInserted" : 1 })
> db.col.find();
{ "_id" : ObjectId("5b5f6a0ed595bb04cbe14b94"), "title" : "ming", "ming" : "sdfdf" }
{ "_id" : ObjectId("5b5f6b27d595bb04cbe14b95"), "title" : "ming", "ming" : "ming" }
> db.col.update({title:ming, ming:"ming"},{$set:{"title":"ming",ming:"sferfer"}});
2018-07-31T03:49:28.376+0800 E QUERY    [js] ReferenceError: ming is not defined :
@(shell):1:16
> db.col.update({title:"ming"},{$set:{"title":"seferf"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.col.find();
{ "_id" : ObjectId("5b5f6a0ed595bb04cbe14b94"), "title" : "seferf", "ming" : "sdfdf" }
{ "_id" : ObjectId("5b5f6b27d595bb04cbe14b95"), "title" : "ming", "ming" : "ming" }
> db.col.find().pretty();
{
        "_id" : ObjectId("5b5f6a0ed595bb04cbe14b94"),
        "title" : "seferf",
        "ming" : "sdfdf"
}
{
        "_id" : ObjectId("5b5f6b27d595bb04cbe14b95"),
        "title" : "ming",
        "ming" : "ming"
}
>

使用save()替換其方法

> db.col.find().pretty();
{
        "_id" : ObjectId("5b5f6a0ed595bb04cbe14b94"),
        "title" : "seferf",
        "ming" : "sdfdf"
}
{
        "_id" : ObjectId("5b5f6b27d595bb04cbe14b95"),
        "title" : "ming",
        "ming" : "ming"
}
> db.col.save({_id: ObjectId("5b5f6a0ed595bb04cbe14b94"), title:"1111"});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.col.find().pretty();
{ "_id" : ObjectId("5b5f6a0ed595bb04cbe14b94"), "title" : "1111" }
{
        "_id" : ObjectId("5b5f6b27d595bb04cbe14b95"),
        "title" : "ming",
        "ming" : "ming"
}
>

同樣的updateOne()和updateMany()同樣可以更新一個(gè)或者多個(gè)文檔
更新的標(biāo)識(shí)仍然是$set

刪除文檔

刪除全部文檔deleteMany(),刪除一個(gè)文檔deleteOne()

> db.col.find().pretty();
{ "_id" : ObjectId("5b5f6a0ed595bb04cbe14b94"), "title" : "1111" }
{
        "_id" : ObjectId("5b5f6b27d595bb04cbe14b95"),
        "title" : "ming",
        "ming" : "ming"
}
> db.col.deleteOne({title:"ming"});
{ "acknowledged" : true, "deletedCount" : 1 }
> db.col.find().pretty();
{ "_id" : ObjectId("5b5f6a0ed595bb04cbe14b94"), "title" : "1111" }
>
查詢文檔
> show collections;
col
ming
startup_log
> db.ming.find().pretty();
> db.ming.insert(ming:"sfrgedrg");
2018-07-31T04:01:45.661+0800 E QUERY    [js] SyntaxError: missing ) after argument list @(shell):1:19
> db.ming.insert({ming:"sdfrf"});
WriteResult({ "nInserted" : 1 })
> db.ming.find().pretty();
{ "_id" : ObjectId("5b5f6eb7d595bb04cbe14b96"), "ming" : "sdfrf" }
>
and條件
> db.ming.find().pretty();
{ "_id" : ObjectId("5b5f6eb7d595bb04cbe14b96"), "ming" : "sdfrf" }
{ "_id" : ObjectId("5b5f6f0ad595bb04cbe14b97"), "name" : "refgerfg" }
{ "_id" : ObjectId("5b5f6f40d595bb04cbe14b98"), "x" : 222, "y" : 44444 }
{ "_id" : ObjectId("5b5f6f50d595bb04cbe14b99"), "x" : 4444, "y" : 22222 }
> db.ming.find({x:222, y:4444});
> db.ming.find({x:222, y:4444}).pretty();
> db.ming.find({x:222, y:44444}).pretty();
{ "_id" : ObjectId("5b5f6f40d595bb04cbe14b98"), "x" : 222, "y" : 44444 }
>

直接,即可

OR條件

使用$or即可

> db.ming.find({  $or:[{x:222}, {x:4444}]  });
{ "_id" : ObjectId("5b5f6f40d595bb04cbe14b98"), "x" : 222, "y" : 44444 }
{ "_id" : ObjectId("5b5f6f50d595bb04cbe14b99"), "x" : 4444, "y" : 22222 }
>
聯(lián)合使用

sql示例

where likes>50 AND (by = "ming" OR title = "ming")
db.ming.find(like: {$gt:50}, $or[{by:"ming"}, {title:"ming"}]);
條件操作符
> $gt
< $lt
>= $gte
<= $lte
db.col.find({like: {$gt: 100}});

類比sql

select * from db.col where like > 100;
博客

www.iming.info

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/19325.html

相關(guān)文章

  • 聊聊MongoDB - MongoDB的簡(jiǎn)單安裝

    摘要:安裝全過(guò)程環(huán)境基本情況我是在電腦下安裝的系統(tǒng)位,這個(gè)也是導(dǎo)致我安裝的時(shí)候出現(xiàn)異常提示,原因可能是的版本是位的,我應(yīng)該再找一個(gè)位的,但事實(shí)上我找不到。 簡(jiǎn)述 之前講了一些關(guān)于MongoDB的知識(shí),出人意料的受歡迎,也讓我很吃驚,所以今天打算分享一些我在自己計(jì)算機(jī)的虛擬機(jī)的centos系統(tǒng)下安裝MongoDB的經(jīng)歷,希望感興趣的你們?cè)诎惭bMongoDB的時(shí)候出現(xiàn)問(wèn)題可以來(lái)看看我是怎么安裝的...

    notebin 評(píng)論0 收藏0
  • 聊聊MongoDB - MongoDB的簡(jiǎn)單安裝

    摘要:安裝全過(guò)程環(huán)境基本情況我是在電腦下安裝的系統(tǒng)位,這個(gè)也是導(dǎo)致我安裝的時(shí)候出現(xiàn)異常提示,原因可能是的版本是位的,我應(yīng)該再找一個(gè)位的,但事實(shí)上我找不到。 簡(jiǎn)述 之前講了一些關(guān)于MongoDB的知識(shí),出人意料的受歡迎,也讓我很吃驚,所以今天打算分享一些我在自己計(jì)算機(jī)的虛擬機(jī)的centos系統(tǒng)下安裝MongoDB的經(jīng)歷,希望感興趣的你們?cè)诎惭bMongoDB的時(shí)候出現(xiàn)問(wèn)題可以來(lái)看看我是怎么安裝的...

    whatsns 評(píng)論0 收藏0
  • 聊聊MongoDB - MongoDB的簡(jiǎn)單安裝

    摘要:安裝全過(guò)程環(huán)境基本情況我是在電腦下安裝的系統(tǒng)位,這個(gè)也是導(dǎo)致我安裝的時(shí)候出現(xiàn)異常提示,原因可能是的版本是位的,我應(yīng)該再找一個(gè)位的,但事實(shí)上我找不到。 簡(jiǎn)述 之前講了一些關(guān)于MongoDB的知識(shí),出人意料的受歡迎,也讓我很吃驚,所以今天打算分享一些我在自己計(jì)算機(jī)的虛擬機(jī)的centos系統(tǒng)下安裝MongoDB的經(jīng)歷,希望感興趣的你們?cè)诎惭bMongoDB的時(shí)候出現(xiàn)問(wèn)題可以來(lái)看看我是怎么安裝的...

    diabloneo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<