Mongodb的安裝與CRUD操作

來源:互聯網
上載者:User

標籤:mongodb   nosql   

What is Mongodb ?        

        Mongo DB是一款開源的非關係型資料庫(NoSql)其文檔模型自由靈活,可以讓你在開發過程中暢順無比。對於大資料量、高並發、弱事務的互連網應用,MongoDB可以應對自如。MongoDB內建的水平擴充機制提供了從百萬到十億層級的資料量處理能力,完全可以滿足Web2.0和移動互連網的資料存放區需求,其開箱即用的特性也大大降低了中小型網站的營運成本。


安裝Mongodb

    來到mongodb官網http://www.mongodb.org/可以在這裡找到YUM源,安裝對應版本的兩個包,一個為服務端,一個為用戶端安裝包名稱如下:

mongo-10gen-2.4.12-mongodb_1.x86_64.rpm

mongo-10gen-server-2.4.12-mongodb_1.x86_64.rpm

添加官方yum源:

vim /etc/yum.repos.d/monogdb.repo

[mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck=0 enabled=1

 yum install mongo-10gen.x86_64 mongo-10gen-server.x86_64 -y

建立mongodb資料檔案夾

mkdir /mongodb/data/ 

chown -R mongod.mongod /mongodb/data/

修改設定檔/etc/mongod.conf指定資料目錄

dbpath=/mongodb/data

啟動Mongodb

service mongod start

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/57/9A/wKiom1SfyE6TZq64AAIM0J8VHCY345.jpg" title="4USH%}@NX~X]BSVPNQ@U748.png" alt="wKiom1SfyE6TZq64AAIM0J8VHCY345.jpg" />

Mongodb的CRUD操作


[[email protected] ~]# mongo

MongoDB shell version: 2.4.5

connecting to: test

> show dbs  //顯示資料庫

local0.078125GB

testdb0.203125GB

> use testdb   //使用資料庫,不需要提前建立可以直接使用。

switched to db testdb

> db.testmcoll.insert({Name: "Jerry"})   //指定集合插入資料

> db.testmcoll.insert({Name:"Haiman"})

> show collections    //顯示庫中的集合

system.indexes

testmcoll

> db.testmcoll.find()   //尋找集合中的資料

{ "_id" : ObjectId("549fcaa56e8223a06e8b1f52"), "Name" : "Jerry" }

{ "_id" : ObjectId("549fcadc6e8223a06e8b1f53"), "Name" : "Haiman" }

> db.testmcoll.stats()   //輸出集合的狀態資訊

{

"ns" : "testdb.testmcoll",

"count" : 2,

"size" : 80,

"avgObjSize" : 40,

"storageSize" : 4096,

"numExtents" : 1,

"nindexes" : 1,

"lastExtentSize" : 4096,

"paddingFactor" : 1,

"systemFlags" : 1,

"userFlags" : 0,

"totalIndexSize" : 8176,

"indexSizes" : {

"_id_" : 8176

},

"ok" : 1

}

> db.testmcoll.drop()   //刪除集合

true

多值插入和批量插入

db.users.insert( {   name:"Tom",   age:23,   status:"S",  groups:[ "News","concert" ] } ) 

for(i=1;i<=100;i++) db.users.insert({Name:"User"+i,Age:i,Gender:"M",Class:["Network","software"]})

刪除年齡為18的行

db.users.remove({Age:18})

將user12的年齡改為22

db.users.update({Name:"User10"},{$set:{Age:22}})   //先指定查詢條件,然後用逗號分割開要設定的值。

將年齡大於60的使用者class欄位的值都改為"old-club"

db.users.update({Age:{$gt:60}},{$set:{Class:"old-club"}},{multi:true})  //mongodb預設只修改第一個匹配條件的document,multi:true代表修改整個文檔被匹配到的內容

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/57/98/wKioL1Sf8InxXtC5AAHUAWO01x4254.jpg" title="QQ20141228195546.png" alt="wKioL1Sf8InxXtC5AAHUAWO01x4254.jpg" />

統計指定集合中文檔的個數

db.users.count()

db.collection.find() 比較子:

$gt    大於

$gte   大於等於  

$in    存在於指定列表中

$lt    小於

$lte   小於等於

$ne    不等於

$nin   不存在指定列表中


尋找出Age大於等於90的使用者,只顯示Name,Age欄位:

db.users.find({Age:{$gte:90}},{Name:1,Age:1})


邏輯運算

$or:或運算  $and:與運算  $not:非運算  $nor:反運算,表示返回不符合所有指定條件的文檔。

尋找Age大於61並且小於70的使用者

db.users.find({$and:[{Age:{$gt:61}},{Age:{$lt:70}}]})

尋找Age大於61並且小於70的使用者只,顯示Name欄位

db.users.find({$and:[{Age:{$gt:61}},{Age:{$lt:70}}]},{Name:1})

元素查詢

$exists:根據指定欄位的存在性挑選文檔,文法格式{field:{$exists:<boolean>}},指定<boolean>的值為"true"則返回存在指定欄位的文檔,"false"則返回不存在指定欄位的文檔;


$mod:將指定欄位的值進行模數運算,並返回其餘數為指定值得文檔


$type:返回指定欄位的實值型別為指定類型的文檔


尋找存在Address欄位的文檔

db.users.find({Address:{$exists:true}})


總結完成!

本文出自 “突破舒適區” 部落格,請務必保留此出處http://tchuairen.blog.51cto.com/3848118/1597002

Mongodb的安裝與CRUD操作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.