日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 數(shù)據(jù)庫 > 數(shù)據(jù)庫應(yīng)用 > 初學(xué)MongoDB實(shí)踐筆記――安裝、創(chuàng)建數(shù)據(jù)庫、保存及查詢數(shù)據(jù)

初學(xué)MongoDB實(shí)踐筆記――安裝、創(chuàng)建數(shù)據(jù)庫、保存及查詢數(shù)據(jù)

來源:程序員人生   發(fā)布時(shí)間:2015-01-04 09:36:07 閱讀次數(shù):2987次

        MongoDB是1個(gè)可擴(kuò)大、高性能的散布式文檔存儲(chǔ)數(shù)據(jù)庫,由C 語言編寫,旨在為web利用提供可擴(kuò)大的高性能數(shù)據(jù)存儲(chǔ)解決方案。它的特點(diǎn)是高性能、易部署、易使用,存儲(chǔ)數(shù)據(jù)非常方便。

        Mongo DB 是目前在IT行業(yè)非常流行的1種非關(guān)系型數(shù)據(jù)庫(NoSql),其靈活的數(shù)據(jù)存儲(chǔ)方式備受當(dāng)前IT從業(yè)人員的青睞。Mongo DB很好的實(shí)現(xiàn)了面向?qū)ο蟮乃枷耄∣O思想),在Mongo DB中每條記錄都是1個(gè)Document對(duì)象。Mongo DB最大的優(yōu)勢(shì)在于所有的數(shù)據(jù)持久操作都無需開發(fā)人員手動(dòng)編寫SQL語句,直接調(diào)用方法就能夠輕松的實(shí)現(xiàn)CRUD操作。

        文檔數(shù)據(jù)庫介紹:

        MongoDB數(shù)據(jù)庫中1條記錄是1個(gè)文檔,他的數(shù)據(jù)結(jié)構(gòu)由(field)和值(value)成對(duì)的組成。MongoDB文檔類似于JSON對(duì)象。字段(域)的值可以包括其他文檔、數(shù)組和文檔數(shù)組。

        以下圖所示MongoDB文檔結(jié)構(gòu):

               

        使用文檔數(shù)據(jù)庫的優(yōu)勢(shì)以下:

        在許多程序設(shè)計(jì)語言中,文檔(即對(duì)象)合適原生數(shù)據(jù)類型;

        嵌入式文檔和數(shù)組減少昂貴的關(guān)系型關(guān)聯(lián)需要;

        動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)模式支持流暢的可擴(kuò)大多態(tài)性。

安裝

        官方網(wǎng)站:http://www.mongodb.org/downloads,下載Windows 64bit地址。

        MongoDB在Windows 7上的安裝運(yùn)行很方便。直接下載、解壓,然后運(yùn)行bin/mongod 便可啟動(dòng)服務(wù)器,運(yùn)行bin/mongo 便可運(yùn)行命令行客戶端。

        我是使用默許安裝到C盤Program FilesMongoDB 2.6 Standard目錄下,為了方便學(xué)習(xí),將其拷貝到C盤根目錄下,為C:MongoDB。

        注意:請(qǐng)最好不要安裝到C盤Program Files目錄下,而且安裝目錄不要包括空格,否則,將麻煩些,也就是命令行參數(shù)每一個(gè)參數(shù)要用“”括起來,例如:

        repeat    "I am hungry"    now

        命令會(huì)把字符串"I am hungry"分配給argv[1],把字符串"now"分配給argv[2]。


        在啟動(dòng)MongoDB之前,我們必須新建1個(gè)寄存mongoDB數(shù)據(jù)和日志的目錄。數(shù)據(jù)庫目錄:C:MongoDBdatadb,日志目錄:C:MongoDBdata。


啟動(dòng)服務(wù)

        打開CMD窗口,進(jìn)入到C:MongoDBin目錄下,運(yùn)行服務(wù)端mongod.exe。

        C:MongoDBin>mongod.exe --dbpath=C:MongoDBdatadb --directoryperdb --logpath=C:MongoDBdatalogs --logappend


        注:如果服務(wù)未啟動(dòng)成功,主要是兩個(gè)緣由,1是未建datadb目錄;和防火墻不允許開放服務(wù)所需端口。


        運(yùn)行客戶端

        再打開1個(gè)CMD窗口,進(jìn)入到C:MongoDBin目錄下,運(yùn)行客戶端mongo.exe來登錄MongoDB。(要保持服務(wù)端mongod.exe的窗口不關(guān)閉)


Java開發(fā)數(shù)據(jù)庫驅(qū)動(dòng)

        驅(qū)動(dòng)Jar包鏈接地址,驅(qū)動(dòng)ZIP包鏈接地址。https://github.com/mongodb/mongo-java-driver/releases


在客戶端練習(xí)

        刪除用戶:db.dropUser('username')

        創(chuàng)建OA數(shù)據(jù)庫:use OA

        注:如果不做其他操作,則OA數(shù)據(jù)庫是不會(huì)被創(chuàng)建的。

        創(chuàng)建collections:OA.createCollection("mytest");

        查看數(shù)據(jù)庫

        > show dbs
        OA     0.078GB
        admin  0.078GB
        db     (empty)
        local  0.078GB
        test   (empty)

        查看Collection(相當(dāng)于“表”):

        > show collections


        創(chuàng)建文檔數(shù)據(jù)數(shù)據(jù)表,并插入數(shù)據(jù)記錄。

        > use OA

        switched to db OA

        > db.createCollection("doctest")

        { "ok" : 1 }

        > db.doctest.save({id:1,name:'ttest1'});

        WriteResult({ "nInserted" : 1 })

        > db.doctest.save({id:2,name:'ttest1',code:'102'});

        WriteResult({ "nInserted" : 1 })

        > db.doctest.save({id:3,name:'ttest3',code:'103',class:'doc'});

        WriteResult({ "nInserted" : 1 })

        > db.doctest.save({id:4,name:'ttest4',code:'104'});

        WriteResult({ "nInserted" : 1 })


        查詢

        查詢數(shù)據(jù)數(shù)量(count)

        > db.doctest.find().count();

        4

        條件(=)查詢,條件為:name="ttest1"。

        > db.doctest.find({"name":"ttest1"});

        { "_id" : ObjectId("54a1003556a081db9d632745"), "id" : 1, "name" : "ttest1" }

        { "_id" : ObjectId("54a1005756a081db9d632746"), "id" : 2, "name" : "ttest1", "code" : "102" }

        條件(>=)查詢,條件為:id>3。

        > db.doctest.find({id:{$gt:3}});

        { "_id" : ObjectId("54a100a056a081db9d632748"), "id" : 4, "name" : "ttest4", "code" : "104" }

        > db.doctest.find({id:{$gte:3}});

        { "_id" : ObjectId("54a1008c56a081db9d632747"), "id" : 3, "name" : "ttest3", "code" : "103", "class" : "doc" }

        { "_id" : ObjectId("54a100a056a081db9d632748"), "id" : 4, "name" : "ttest4", "code" : "104" }

        條件(in)查詢,條件為:id in (2,3)。

        > db.doctest.find({id:{$in:[2,3]}});

        說明:$gt : >               --(Greater than 的首字母)

                    $gte : >=           --(Greater than or equal 的首字母)

                    $lt :<                  --(Less than 的首字母)

                    $lte :<=             --(Less than  or equal  的首字母)

                    $ne : !=             --(Not equal  的首字母)


        推薦客戶端工具

        1. MongoVUE ,http://blog.mongovue.com/ 


數(shù)據(jù)庫設(shè)計(jì)

        MongoDB 無固定結(jié)構(gòu),每張表每段數(shù)據(jù)可以有不同的結(jié)構(gòu),這既是好處也是缺點(diǎn),缺點(diǎn)在于你必須很了解MongoDB的表結(jié)構(gòu),這其實(shí)給保護(hù)人員帶來1定的不適應(yīng)和麻煩。

        此問題也很容易解決,就是增加表結(jié)構(gòu)定義表,用于說明各種情況下的結(jié)構(gòu)定義,例如可配置審批單,就是比較適用。

        嵌套式設(shè)計(jì),例如審批單帶有明細(xì)項(xiàng)目,其中,明細(xì)項(xiàng)目是多行數(shù)據(jù)內(nèi)容,則操作以下:

        >db.doctest.save({id:5,name:'ttest5',code:'106',detail:[{item:'測(cè)試卡1',type:'Card',acount:3},{item:'測(cè)試卡2',type:'Card',acount:5}]});

        查詢其中型號(hào)(Type)是“Mobile”的記錄,在操作以下:

        > db.doctest.find({"detail.type":"Mobile"});
        { "_id" : ObjectId("54a39ebdd8389293ac59e78a"), "id" : 6, "name" : "ttest6", "code" : "107", "detail" : [ { "item" : "員工卡1", "type" : "Card", "acount" : 3 }, { "item" : "測(cè)試手機(jī)", "type" : "Mobile", "acount" : 5 } ] }

        查看審批單的設(shè)計(jì):

> db.doctest.find();



查詢內(nèi)嵌文檔

        查詢文檔有兩種方式,1種是完全匹查詢,另外一種是針對(duì)鍵值對(duì)查詢!內(nèi)嵌文檔的完全匹配查詢和數(shù)組的完全匹配查詢1樣,內(nèi)嵌文檔內(nèi)鍵值對(duì)的數(shù)量,順序都必須1致才會(huì)匹配,以下例:

    

        針對(duì)內(nèi)嵌文檔特定鍵值對(duì)的查詢是最經(jīng)常使用的!通過點(diǎn)表示法來精確表示內(nèi)嵌文檔的鍵。


參考:Introduction to MongoDB

           學(xué)習(xí)MongoDB--(4⑵):MongoDB查詢(數(shù)組、內(nèi)嵌文檔和$where)

           mongodb的查詢語句學(xué)習(xí)摘要

           百度百科MongoDB

           大數(shù)據(jù)廠商同盟 MongoDB

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 精品高清视频 | 精品一区二区视频 | 久久久久免费网站 | 91视频一区二区 | 成人在线毛片 | 亚洲第一大片 | 久久久精品动漫 | 精品视频在线一区 | 性视频网址 | 美女视频久久 | 日韩精品一区在线观看 | 久久综合伊人77777蜜臀 | 亚洲国产综合在线 | 亚洲成人精品久久 | 国产一区高清 | 久久久蜜桃一区二区人 | 伊人免费视频 | 成人h视频 | 国产日产精品一区二区三区四区 | 欧美日韩中文字幕 | 日韩三级影院 | 国产一区二区三区高清 | 欧美精品在线一区二区 | 亚洲精品一区国产精品 | 国产视频二区 | 麻豆视频传媒入口 | 毛片无码国产 | 99一区二区| 国产一区二区三区欧美 | 国产精品久久久久久亚洲毛片 | 成人网在线 | 波多野结衣在线播放一区 | 在线日韩一区 | 亚洲欧美中文日韩在线v日本 | 免费黄色片子 | 欧美性猛交xxxx乱大交退制版 | 黄色一级片在线免费观看 | 免费国产在线观看 | 日日干狠狠干 | www.国产一区| av中文字幕一区 |