溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Mongodb的安裝與CRUD操作

發(fā)布時(shí)間:2020-07-12 12:05:36 來(lái)源:網(wǎng)絡(luò) 閱讀:876 作者:qw87112 欄目:MongoDB數(shù)據(jù)庫(kù)

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操作

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)容

Mongodb的安裝與CRUD操作

統(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é)完成!

向AI問(wèn)一下細(xì)節(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)容。

AI