麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 數(shù)據(jù)庫(kù) > MongoDB > 正文

mongodb的安裝使用和pymongo基本使用教程

2020-03-14 12:55:38
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

(1) mongodb的安裝

下載tgz解壓后,需要添加相應(yīng)的環(huán)境變量才能在終端直接啟動(dòng)mongod。

mongodb數(shù)據(jù)存儲(chǔ)在/data/db中,需要手動(dòng)創(chuàng)建目錄樹,同時(shí)mongod執(zhí)行的時(shí)候如果權(quán)限不夠(不能往/data/db寫東西),需要改一下權(quán)限。

vim ~/.bashrcexport PATH="~/download/mongodb-linux-x86_64-ubuntu/bin:$PATH"mkdir -p /data/dbls -l / 查看data目錄的權(quán)限,發(fā)現(xiàn)擁有者可寫ls -l /data 查看db目錄的權(quán)限,發(fā)現(xiàn)擁有者可寫chown -R "liaohuqiang" /data data下的所有文件的擁有者改為自己 

(2) mongod的啟動(dòng)

之后就可以在終端上輸入mongod,這個(gè)時(shí)候就啟動(dòng)了mongodb,但是這個(gè)時(shí)候是在終端運(yùn)行著的,相當(dāng)于一個(gè)前臺(tái)進(jìn)程,在這個(gè)終端你不能做其它操作。

可以使用--fork選項(xiàng),開啟后會(huì)回到終端交互,可以繼續(xù)做自己的事。

fork表示以守護(hù)進(jìn)程的方式啟動(dòng)mongodb,創(chuàng)建一個(gè)服務(wù)器進(jìn)程。fork要配合logpath使用,表示日志信息輸出到哪個(gè)日志文件。logappend表示以追加的方式寫入日志文件。

當(dāng)然還有別的啟動(dòng)方式,目前還沒(méi)用到,暫時(shí)先不說(shuō)。

mongod --fork --logappend ~/mongo.log --logappend 

(3)mongo的使用

啟動(dòng)mongod后就可以在終端進(jìn)入mongo進(jìn)行相關(guān)數(shù)據(jù)庫(kù)操作

show dbs 顯示所有數(shù)據(jù)庫(kù)use doctor 切換到某個(gè)數(shù)據(jù)庫(kù)"doctor", 不切換的話默認(rèn)使用testdb.dropDatabase() 刪除數(shù)據(jù)庫(kù)show collections 顯示所有集合db.sample.drop() 刪除集合db.sample.insert({name:"pilgrimHui", label:"1"}) 插入一行記錄db.sample.insert({...}) 如果文檔已存在,會(huì)更新_id,不存在則同insertdb.sample.find({...}) 查找滿足條件的記錄,簡(jiǎn)單的一些查詢條件見下面db.sample.find({...},{field1:1, field2:1}) 只找出某些字段db.sample.find() 查找sample集合所有記錄db.sample.remove({...},1) 刪除滿足條件的記錄,參數(shù)1可選,代表只刪除1個(gè)db.sample.remove({}) 刪除sample集合的所有記錄

(4) mongo里的update操作

db.collection.update(criteria, objNew, upsert, multi)criteria: 查詢條件,理解為sql update語(yǔ)句where后面的objNew: 更新操作,理解為sql update語(yǔ)句set后面的upsert: 如果不存在查詢到的記錄,是否插入。默認(rèn)false,不插入multi: 是否更新多條。默認(rèn)false,只更新第一條。# 例如:把集合里所有記錄的status改為0db.sample.update({"status": {$ne: 0} }, {$set: {"status":0}}, {multi: true})或者db.sample.update({"status": {$ne: 0} }, {$set: {"status":0}}, false,true)

(4) 幾個(gè)查詢操作符

$ne 不等$gt 大于$gte 大于等于$lt 小于$lte 小于等于$in和$nin 是否在指定數(shù)組中$all 是否全在指定數(shù)組中$or 將數(shù)組中的多個(gè)鍵值對(duì)或運(yùn)算$slice:[1,2] 切片,取屬性值(數(shù)組)的某幾個(gè)$size 該屬性值(數(shù)組)的長(zhǎng)度$exists:true 選擇該字段存在的記錄$not 對(duì)任何查詢操作符取非$regex 使用正則表達(dá)式匹配

(5) 幾個(gè)更新操作符

{ $inc : { field : value } }{ $set : { field : value } }{ $unset : { field : 1} } { $push : { field : value } } 追加,field要是數(shù)組{ $pull : { field : value } } 和push相反{ $pop : { field : 1 } } 刪除最后1個(gè)值{ $pop : { field : -1 } } 刪除第1個(gè)值 { $currentDate: { <field1>: {$type:"date", ... } } 設(shè)定當(dāng)前時(shí)間{ $rename: {<field1>:<newName1>,<field2>:<newName2>,...} } 重命名字段

(6) 用戶權(quán)限設(shè)置

mongodb默認(rèn)沒(méi)有帳號(hào)登錄,需要自己先添加帳號(hào)。

在admin數(shù)據(jù)庫(kù)添加的帳號(hào)為管理員帳號(hào),在其它數(shù)據(jù)庫(kù)添加的帳號(hào)為普通用戶

用戶只能在用戶所在的數(shù)據(jù)庫(kù)登錄,包括管理員。

管理員只能在admin登錄認(rèn)證后才能管理其它數(shù)據(jù)庫(kù)。

6.1 添加管理員帳號(hào)

use admindb.system.users.find()

db.addUser('liaohuqiang','liaohuqiang')  添加管理員用戶,mongodb版本不同,可能會(huì)報(bào)錯(cuò),如果報(bào)錯(cuò)找不到addUser則

用下面這個(gè)

db.createUser( {  user: 'liaohuqiang',  pwd: 'liaohuqiang',  roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })

6.2 重新啟動(dòng)mongod

創(chuàng)建成功后重啟mongod,這個(gè)時(shí)候開啟連接可以帶上--auth選項(xiàng),代表驗(yàn)證用戶權(quán)限。

mongod --fork --logappend ~/mongo.log --logappend --auth

6.3 認(rèn)證登錄

開啟后,直接mongo進(jìn)去操作會(huì)受限,可以mongo連接時(shí)授權(quán)登錄;也可以連接進(jìn)去后再認(rèn)證。

mongo -u liaohuqiang -p --authenticationDatabase adminmysql -h ip -u root -p 亂入,對(duì)比一下mysql的連接mongouse admindb.auth('liaohuqiang', 'liaohuqiang')

6.4 關(guān)閉連接

認(rèn)證登錄后就可以像之前那樣操作數(shù)據(jù)庫(kù)了,操作完后可以在admin數(shù)據(jù)庫(kù)關(guān)閉連接。

use admin db.shutdownServer() 關(guān)閉mongod 

(7) pymongo的連接

import pymongoclient=pymongo.MongoClient('mongodb://username:password@ip')db=client['doctor']users=db["user"]result= list(users.find( {'role':1}, {'_id':0} ) ) 選多個(gè)result= users.find_one({"name":name}) 選單個(gè)users.insert_one({"name":name}) 插一個(gè),會(huì)自動(dòng)生成主鍵users.remove( {"name":name}, {"multi":True} ) 刪多個(gè)users.update_one({'name':name},{'$inc':{'commitCount':1}}) 改一個(gè)

總結(jié)

以上所述是小編給大家介紹的mongodb的安裝使用和pymongo基本使用教程,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)VEVB武林網(wǎng)網(wǎng)站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到MongoDB頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久亚洲国产午夜精品理论片 | 成人三级电影网址 | 看毛片电影 | 国产亚洲精品影达达兔 | 黄色片网站在线看 | 九九黄色 | 神马视频我不卡 | 久久久www成人免费精品 | a免费看 | 国产精品麻豆一区二区三区 | 澳门一级淫片免费视频 | 国产一级免费在线视频 | 宅男噜噜噜66国产在线观看 | 黑人三级毛片 | 免费国产在线视频 | 天堂成人国产精品一区 | av在线等| 欧美爱爱一区二区 | 精品亚洲在线 | 成人精品免费在线观看 | 亚洲尻逼视频 | 一区二区三区在线观看国产 | 久久久久久久高清 | 竹内纱里奈和大战黑人 | 欧洲色阁中文字幕 | 久色成人 | 久久久婷婷一区二区三区不卡 | 亚洲草逼视频 | 一区二区久久电影 | 天天干干 | 欧美乱淫 | 一本色道久久综合狠狠躁篇适合什么人看 | 亚洲特黄 | 免费看性xxx高清视频自由 | 中文字幕专区高清在线观看 | 欧美成人免费电影 | 国产精品夜色视频一级区 | 99最新地址 | 一级α片免费看刺激高潮视频 | 免费a级片视频 | 久久99国产视频 |