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

資訊專欄INFORMATION COLUMN

MongoDB ( 一 )初識(shí)

NotFound / 3247人閱讀

摘要:價(jià)格目前的非關(guān)系型數(shù)據(jù)庫(kù)基本都是免費(fèi)的功能實(shí)際開發(fā)中,很多業(yè)務(wù)需求,其實(shí)并不需要完整的關(guān)系型數(shù)據(jù)庫(kù)功能,非關(guān)系型數(shù)據(jù)庫(kù)的功能就足夠使用了。目的是為應(yīng)用提供擴(kuò)展的高性能的數(shù)據(jù)存儲(chǔ)方案。我們平時(shí)大多還是使用修改器來(lái)修改下一節(jié)我們來(lái)認(rèn)識(shí)修改器

我們先來(lái)了解一下非關(guān)系型數(shù)據(jù)庫(kù)和關(guān)系型數(shù)據(jù)庫(kù),首先需要了解一下關(guān)系型數(shù)據(jù)庫(kù),比如,我們所熟知的 Oracle、mysql等。

關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)

實(shí)質(zhì): 非關(guān)系型數(shù)據(jù)庫(kù)的實(shí)質(zhì),其實(shí)非關(guān)系型數(shù)據(jù)庫(kù)是傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的功能的閹割版,通過(guò)減少用不到的或者很少使用的功能,來(lái)大幅度提高產(chǎn)品的性能。

價(jià)格:目前的非關(guān)系型數(shù)據(jù)庫(kù)基本都是免費(fèi)的

功能: 實(shí)際開發(fā)中,很多業(yè)務(wù)需求,其實(shí)并不需要完整的關(guān)系型數(shù)據(jù)庫(kù)功能,非關(guān)系型數(shù)據(jù)庫(kù)的功能就足夠使用了。這種情況下,使用性能更高、成本更低的非關(guān)系型數(shù)據(jù)庫(kù)當(dāng)然是更明智的選擇。

MongoDB簡(jiǎn)介:
Mongodb 是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù),由C++編寫。 目的是為WEB應(yīng)用提供擴(kuò)展的高性能的數(shù)據(jù)存儲(chǔ)方案。它是介于關(guān)系型和非關(guān)系型數(shù)據(jù)庫(kù)中間的產(chǎn)品,他支持的數(shù)據(jù)結(jié)構(gòu)比較松散,是類似于json的Bson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型。
mongo shell
// 啟動(dòng)mongodb 之后

var x="Hello World"
print(x) // 注意這里雖然執(zhí)行的時(shí)js指令,但是不能使用console.log , 只能使用print()

function jspang(){
    return "JSPang";
}
print(jspang())
MongoDB的存儲(chǔ)結(jié)構(gòu)

以前我們的關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)都是頂層是庫(kù),庫(kù)下面是表,表下面是數(shù)據(jù)。但是MongoDB有所不同,庫(kù)下面是集合,集合下面是文檔,可以看下面這張圖進(jìn)行了解一下。
基礎(chǔ)Shell命令

show dbs :顯示已有數(shù)據(jù)庫(kù),如果你剛安裝好,會(huì)默認(rèn)有l(wèi)ocal、admin(config),這是MongoDB的默認(rèn)數(shù)據(jù)庫(kù),我們?cè)谛陆◣?kù)時(shí)是不允許起這些名稱的。

use admin: 進(jìn)入數(shù)據(jù)庫(kù),也可以理解成為使用數(shù)據(jù)庫(kù)

show collections: 顯示數(shù)據(jù)庫(kù)中的集合

db:顯示當(dāng)前位置,也就是你當(dāng)前使用的數(shù)據(jù)庫(kù)名稱,這個(gè)命令算是最常用的,因?yàn)槟阍谧魅魏尾僮鞯臅r(shí)候都要先查看一下自己所在的庫(kù),以免造成操作錯(cuò)誤。

用js文件寫mongo命令

首先啟動(dòng) mongodb

// getTask.js
var username = "zjj";
var time = Date.parse(new Date());
var jsonData = {"loginUser": username, "loginTime": time}
var db = connect("login") // 連接數(shù)據(jù)庫(kù)
db.login.insert(jsonData)

print("log print success")
在該目錄下執(zhí)行
mongo getTask.js
批量注入
// 批量數(shù)據(jù)插入是以數(shù)組的方式進(jìn)行的

db.test.insert([
    {"_id":1},
    {"_id":2},
    {"_id":3}
]);

// 注意一次插入不要超過(guò)48M,向.zip和大圖片什么的盡量用靜態(tài)存儲(chǔ),MongoDB存儲(chǔ)靜態(tài)路徑就好,這也算是一個(gè)規(guī)則。

// 使用數(shù)組批量插入的效率比使用循環(huán)插入的效率高的多
Update常見錯(cuò)誤
// demo01.js
var workmate1={
    name:"JSPang",
    age:33,
    sex:1,
    job:"前端",
    skill:{
        skillOne:"HTML+CSS",
        SkillTwo:"JavaScript",
        SkillThree:"PHP"
    },
    regeditTime:new Date()
}
 
var workmate2={
    name:"ShengLei",
    age:30,
    sex:1,
    job:"JAVA后端",
    skill:{
        skillOne:"HTML+CSS",
        SkillTwo:"J2EE",
        SkillThree:"PPT"
    },
    regeditTime:new Date()
}
 
var workmate3={
    name:"MinJie",
    age:20,
    sex:1,
    job:"UI設(shè)計(jì)",
    skill:{
        skillOne:"PhotoShop",
        SkillTwo:"UI",
        SkillThree:"Word+Excel+PPT"
    },
    regeditTime:new Date()
}
 
var db=connect("company")
var workmateArray=[workmate1,workmate2,workmate3]
db.workmate.insert(workmateArray)
print("[SUCCESS]: The data was inserted successfully.");
// 構(gòu)造數(shù)據(jù)

// 運(yùn)行demo01

mongo
> load("./demo01.js");
var db=connect("company")
db.workmate.update({name:"MinJie"},{sex:0})
 
print("[update]: The data was updated successfully");
// 我們會(huì)發(fā)現(xiàn)需要修改的那條數(shù)據(jù)已經(jīng)被大變樣了,只剩下了只有 sex:0

正確的修改方法

// demo02.js
var db=connect("company")
 
var workmate3={
    name:"MinJie",
    age:20,
    sex:0,
    job:"UI設(shè)計(jì)",
    skill:{
        skillOne:"PhotoShop",
        SkillTwo:"UI",
        SkillThree:"Word+Excel+PPT"
    },
    regeditTime:new Date()
}
db.workmate.update({name:"MinJie"},workmate3)
 
 
print("[update]: The data was updated successfully");

但是如果每次都這么來(lái)改,多麻煩呢。我們平時(shí)大多還是使用update修改器來(lái)修改

下一節(jié)我們來(lái)認(rèn)識(shí)update修改器

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

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

相關(guān)文章

  • Mongodb語(yǔ)法初識(shí)()

    摘要:命令檢查創(chuàng)建的集合命令從數(shù)據(jù)庫(kù)中刪除集合。命令從集合查詢數(shù)據(jù)將在非結(jié)構(gòu)化的方式顯示所有的文件。如果顯示結(jié)果是格式化的,那么可以用除了方法還有方法,僅返回一個(gè)文檔。文檔排序方法,方法接受一個(gè)包含字段列表以及排序順序的文檔。 MongoDB啟動(dòng)服務(wù)器 第一步:下載安裝包 第二步:解壓下載到的安裝包,找到bin目錄下面全部.exe文件 第三步:在該目錄下新建data文件夾,它將會(huì)作為數(shù)據(jù)存...

    levy9527 評(píng)論0 收藏0
  • 初識(shí)MongoDB分片

    摘要:復(fù)制一份,命名為,修改文件內(nèi)容如下注意改為我們第一步創(chuàng)建的目錄,端口號(hào)改為這個(gè)隨意,只要該端口沒(méi)被占用即可,表示這是一個(gè)配置服務(wù)器,另外由于我們的配置服務(wù)器要做成備份集,所以要設(shè)置。 分片是指將數(shù)據(jù)拆分,拆分后存放在不同的機(jī)器上的過(guò)程,以此來(lái)降低單個(gè)服務(wù)器的壓力,同時(shí)也解決單個(gè)服務(wù)器硬盤空間不足的問(wèn)題,讓我們可以用廉價(jià)的機(jī)器實(shí)現(xiàn)高性能的數(shù)據(jù)架構(gòu)。有的小伙伴不理解分片和副本集的差異,一言...

    Nino 評(píng)論0 收藏0
  • mongoDB查詢進(jìn)階】聚合管道() -- 初識(shí)

    摘要:小結(jié)是聚合管道查詢使用的方法,參數(shù)是數(shù)組,每個(gè)數(shù)組元素就是一個(gè),中運(yùn)用操作符對(duì)數(shù)據(jù)進(jìn)行處理后再交由下一個(gè),直到?jīng)]有下個(gè),就輸出最終的結(jié)果,而數(shù)據(jù)的處理則是通過(guò)使用操作符,本文先簡(jiǎn)單介紹了一下有哪些常用的操作符,下一篇再詳細(xì)說(shuō)明。 前言:一般查詢可以通過(guò)find方法,但如果是比較復(fù)雜的查詢或者數(shù)據(jù)統(tǒng)計(jì)的話,find可能就無(wú)能為力了,這時(shí)也許你需要的是aggregate. 什么是聚合管道(...

    MSchumi 評(píng)論0 收藏0
  • 兩年了,我寫了這些干貨!

    摘要:開公眾號(hào)差不多兩年了,有不少原創(chuàng)教程,當(dāng)原創(chuàng)越來(lái)越多時(shí),大家搜索起來(lái)就很不方便,因此做了一個(gè)索引幫助大家快速找到需要的文章系列處理登錄請(qǐng)求前后端分離一使用完美處理權(quán)限問(wèn)題前后端分離二使用完美處理權(quán)限問(wèn)題前后端分離三中密碼加鹽與中異常統(tǒng)一處理 開公眾號(hào)差不多兩年了,有不少原創(chuàng)教程,當(dāng)原創(chuàng)越來(lái)越多時(shí),大家搜索起來(lái)就很不方便,因此做了一個(gè)索引幫助大家快速找到需要的文章! Spring Boo...

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

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

0條評(píng)論

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