您好,登錄后才能下訂單哦!
What is Mongodb ?
Mongo DB是一款開源的非關(guān)系型數(shù)據(jù)庫(kù)(NoSql)其文檔模型自由靈活,可以讓你在開發(fā)過(guò)程中暢順無(wú)比。對(duì)于大數(shù)據(jù)量、高并發(fā)、弱事務(wù)的互聯(lián)網(wǎng)應(yīng)用,MongoDB可以應(yīng)對(duì)自如。MongoDB內(nèi)置的水平擴(kuò)展機(jī)制提供了從百萬(wàn)到十億級(jí)別的數(shù)據(jù)量處理能力,完全可以滿足Web2.0和移動(dòng)互聯(lián)網(wǎng)的數(shù)據(jù)存儲(chǔ)需求,其開箱即用的特性也大大降低了中小型網(wǎng)站的運(yùn)維成本。
安裝Mongodb
來(lái)到mongodb官網(wǎng)http://www.mongodb.org/可以在這里找到Y(jié)UM源,安裝對(duì)應(yīng)版本的兩個(gè)包,一個(gè)為服務(wù)端,一個(gè)為客戶端安裝包名稱如下:
mongo-10gen-2.4.12-mongodb_1.x86_64.rpm
mongo-10gen-server-2.4.12-mongodb_1.x86_64.rpm
添加官方y(tǒng)um源:
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
創(chuàng)建mongodb數(shù)據(jù)文件夾
mkdir /mongodb/data/
chown -R mongod.mongod /mongodb/data/
修改配置文件/etc/mongod.conf指定數(shù)據(jù)目錄
dbpath=/mongodb/data
啟動(dòng)Mongodb
service mongod start
Mongodb的CRUD操作
[root@server1 ~]# mongo
MongoDB shell version: 2.4.5
connecting to: test
> show dbs //顯示數(shù)據(jù)庫(kù)
local0.078125GB
testdb0.203125GB
> use testdb //使用數(shù)據(jù)庫(kù),不需要提前創(chuàng)建可以直接使用。
switched to db testdb
> db.testmcoll.insert({Name: "Jerry"}) //指定集合插入數(shù)據(jù)
> db.testmcoll.insert({Name:"Haiman"})
> show collections //顯示庫(kù)中的集合
system.indexes
testmcoll
> db.testmcoll.find() //查找集合中的數(shù)據(jù)
{ "_id" : ObjectId("549fcaa56e8223a06e8b1f52"), "Name" : "Jerry" }
{ "_id" : ObjectId("549fcadc6e8223a06e8b1f53"), "Name" : "Haiman" }
> db.testmcoll.stats() //輸出集合的狀態(tài)信息
{
"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}}) //先指定查詢條件,然后用逗號(hào)分割開要設(shè)置的值。
將年齡大于60的用戶class字段的值都改為"old-club"
db.users.update({Age:{$gt:60}},{$set:{Class:"old-club"}},{multi:true}) //mongodb默認(rèn)只修改第一個(gè)匹配條件的document,multi:true代表修改整個(gè)文檔被匹配到的內(nèi)容
統(tǒng)計(jì)指定集合中文檔的個(gè)數(shù)
db.users.count()
db.collection.find() 比較運(yùn)算符:
$gt 大于
$gte 大于等于
$in 存在于指定列表中
$lt 小于
$lte 小于等于
$ne 不等于
$nin 不存在指定列表中
查找出Age大于等于90的用戶,只顯示Name,Age字段:
db.users.find({Age:{$gte:90}},{Name:1,Age:1})
邏輯運(yùn)算
$or:或運(yùn)算 $and:與運(yùn)算 $not:非運(yùn)算 $nor:反運(yùn)算,表示返回不符合所有指定條件的文檔。
查找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:根據(jù)指定字段的存在性挑選文檔,語(yǔ)法格式{field:{$exists:<boolean>}},指定<boolean>的值為"true"則返回存在指定字段的文檔,"false"則返回不存在指定字段的文檔;
$mod:將指定字段的值進(jìn)行取模運(yùn)算,并返回其余數(shù)為指定值得文檔
$type:返回指定字段的值類型為指定類型的文檔
查找存在Address字段的文檔
db.users.find({Address:{$exists:true}})
在shell中操作mongodb
sql="db.srt.find([],{final_txt:1,_id:0})"
echo "$sql" | mongo -u quxue -p NbftlXtC6oTa gotye --shell >m.txt
總結(jié)完成!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。