一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - MongoDB - mongodb的安裝使用和pymongo基本使用教程

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

2020-05-13 20:15PilgrimHui MongoDB

這篇文章主要介紹了mongodb的安裝使用和pymongo基本使用教程,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

(1) mongodb的安裝

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

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

?
1
2
3
4
5
6
vim ~/.bashrc
export PATH="~/download/mongodb-linux-x86_64-ubuntu/bin:$PATH"
mkdir -p /data/db
ls -l / 查看data目錄的權限,發(fā)現擁有者可寫
ls -l /data 查看db目錄的權限,發(fā)現擁有者可寫
chown -R "liaohuqiang" /data data下的所有文件的擁有者改為自己 

(2) mongod的啟動

之后就可以在終端上輸入mongod,這個時候就啟動了mongodb,但是這個時候是在終端運行著的,相當于一個前臺進程,在這個終端你不能做其它操作。

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

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

當然還有別的啟動方式,目前還沒用到,暫時先不說。

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

(3)mongo的使用

啟動mongod后就可以在終端進入mongo進行相關數據庫操作

?
1
2
3
4
5
6
7
8
9
10
11
12
show dbs 顯示所有數據庫
use doctor 切換到某個數據庫"doctor", 不切換的話默認使用test
db.dropDatabase() 刪除數據庫
show collections 顯示所有集合
db.sample.drop() 刪除集合
db.sample.insert({name:"pilgrimHui", label:"1"}) 插入一行記錄
db.sample.insert({...}) 如果文檔已存在,會更新_id,不存在則同insert
db.sample.find({...}) 查找滿足條件的記錄,簡單的一些查詢條件見下面
db.sample.find({...},{field1:1, field2:1}) 只找出某些字段
db.sample.find() 查找sample集合所有記錄
db.sample.remove({...},1) 刪除滿足條件的記錄,參數1可選,代表只刪除1個
db.sample.remove({}) 刪除sample集合的所有記錄

(4) mongo里的update操作

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

(4) 幾個查詢操作符

?
1
2
3
4
5
6
7
8
9
10
11
12
13
$ne 不等
$gt 大于
$gte 大于等于
$lt 小于
$lte 小于等于
$in和$nin 是否在指定數組中
$all 是否全在指定數組中
$or 將數組中的多個鍵值對或運算
$slice:[1,2] 切片,取屬性值(數組)的某幾個
$size 該屬性值(數組)的長度
$exists:true 選擇該字段存在的記錄
$not 對任何查詢操作符取非
$regex 使用正則表達式匹配

(5) 幾個更新操作符

?
1
2
3
4
5
6
7
8
9
{ $inc : { field : value } }
{ $set : { field : value } }
{ $unset : { field : 1} }
{ $push : { field : value } } 追加,field要是數組
{ $pull : { field : value } } 和push相反
{ $pop : { field : 1 } } 刪除最后1個值
{ $pop : { field : -1 } } 刪除第1個值 
{ $currentDate: { <field1>: {$type:"date", ... } } 設定當前時間
{ $rename: {<field1>:<newName1>,<field2>:<newName2>,...} } 重命名字段

(6) 用戶權限設置

mongodb默認沒有帳號登錄,需要自己先添加帳號。

在admin數據庫添加的帳號為管理員帳號,在其它數據庫添加的帳號為普通用戶

用戶只能在用戶所在的數據庫登錄,包括管理員。

管理員只能在admin登錄認證后才能管理其它數據庫。

6.1 添加管理員帳號

?
1
2
use admin
db.system.users.find()

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

用下面這個

?
1
2
3
4
5
6
7
db.createUser(
 {
  user: 'liaohuqiang',
  pwd: 'liaohuqiang',
  roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
 }
)

6.2 重新啟動mongod

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

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

6.3 認證登錄

開啟后,直接mongo進去操作會受限,可以mongo連接時授權登錄;也可以連接進去后再認證。

?
1
2
3
4
5
mongo -u liaohuqiang -p --authenticationDatabase admin
mysql -h ip -u root -p 亂入,對比一下mysql的連接
mongo
use admin
db.auth('liaohuqiang', 'liaohuqiang')

6.4 關閉連接

認證登錄后就可以像之前那樣操作數據庫了,操作完后可以在admin數據庫關閉連接。

?
1
2
use admin
db.shutdownServer() 關閉mongod

(7) pymongo的連接

?
1
2
3
4
5
6
7
8
9
import pymongo
client=pymongo.MongoClient('mongodb://username:password@ip')
db=client['doctor']
users=db["user"]
result= list(users.find( {'role':1}, {'_id':0} ) ) 選多個
result= users.find_one({"name":name}) 選單個
users.insert_one({"name":name}) 插一個,會自動生成主鍵
users.remove( {"name":name}, {"multi":True} ) 刪多個
users.update_one({'name':name},{'$inc':{'commitCount':1}}) 改一個

總結

以上所述是小編給大家介紹的mongodb的安裝使用和pymongo基本使用教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://www.cnblogs.com/liaohuiqiang/archive/2017/07/18/7201291.html

延伸 · 閱讀

精彩推薦
  • MongoDBMongoDB憑什么躋身數據庫排行前五

    MongoDB憑什么躋身數據庫排行前五

    MongoDB以比去年同期超出65.96分的成績繼續(xù)雄踞榜單前五,這個增幅在全榜僅次于PostgreSQL的77.99,而其相對于4月份的6.10分的增長也是僅次于微軟SQL Server排名...

    孫浩峰3892020-05-22
  • MongoDB遷移sqlserver數據到MongoDb的方法

    遷移sqlserver數據到MongoDb的方法

    這篇文章主要介紹了遷移sqlserver數據到MongoDb的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下...

    聽楓xl9682021-01-03
  • MongoDBMongodb實現定時備份與恢復的方法教程

    Mongodb實現定時備份與恢復的方法教程

    這篇文章主要給大家介紹了Mongodb實現定時備份與恢復的方法教程,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面...

    chenjsh364522020-05-13
  • MongoDBMongoDB中javascript腳本編程簡介和入門實例

    MongoDB中javascript腳本編程簡介和入門實例

    作為一個數據庫,MongoDB有一個很大的優(yōu)勢——它使用js管理數據庫,所以也能夠使用js腳本進行復雜的管理——這種方法非常靈活 ...

    MongoDB教程網6982020-04-24
  • MongoDBMongoDB 內存使用情況分析

    MongoDB 內存使用情況分析

    都說 MongoDB 是個內存大戶,但是怎么知道它到底用了多少內存呢...

    MongoDB教程網10002020-09-29
  • MongoDBMongoDB安裝圖文教程

    MongoDB安裝圖文教程

    這篇文章主要為大家詳細介紹了MongoDB安裝圖文教程,分為兩大部分為大家介紹下載MongoDB和安裝MongoDB的方法,感興趣的小伙伴們可以參考一下 ...

    Yangyi.He6132020-05-07
  • MongoDBmongodb基本命令實例小結

    mongodb基本命令實例小結

    這篇文章主要介紹了mongodb基本命令,結合實例形式總結分析了MongoDB數據庫切換、查看、刪除、查詢等基本命令用法與操作注意事項,需要的朋友可以參考下...

    dawn-liu3652020-05-26
  • MongoDB分布式文檔存儲數據庫之MongoDB分片集群的問題

    分布式文檔存儲數據庫之MongoDB分片集群的問題

    這篇文章主要介紹了分布式文檔存儲數據庫之MongoDB分片集群的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋...

    Linux-18743072020-12-20
主站蜘蛛池模板: 国产色网址 | 国产成人性毛片aaww | 日本中文字幕不卡在线一区二区 | 四虎地址 | 1313午夜精品久久午夜片 | 秋葵污视频| 欧美人妖另类性hd | 色婷婷在线 | 狠狠的撞进去嗯啊h女强男视频 | 女人扒开下面让男人桶爽视频 | 好男人在线观看免费高清2019韩剧 | 91果冻制片厂天美传媒 | 无套内射在线观看THEPORN | 国产成人免费高清激情视频 | 日本小视频网站 | 国语自产自拍秒拍在线视频 | 精品精品国产自在现拍 | 免费在线观看网址大全 | 色呦呦入口 | 亚洲狠狠婷婷综合久久蜜桃 | 亚洲v成人天堂影视 | 免费xxxxx大片在线观看影视 | 沉香如屑西瓜视频免费观看完整版 | 黄瓜视频免费 | 国产精品欧美亚洲韩国日本 | 亚洲社区在线观看 | 天天翘 | 国产亚洲玖玖玖在线观看 | 91香蕉国产| 精品国产一区二区三区在线观看 | 爱色成人网 | 99精品久久99久久久久久 | 久久久久激情免费观看 | 国色天香视频完整版 | tobu8中国在线观看免费视频 | 驯服有夫之妇HD中字日本 | 麻生希在线观看 | 亚洲精品视 | 亚洲精品日韩专区在线观看 | 国产小视频网站 | 鞋奴的视频VK |