Centos下通過yum安裝步驟如下: 聲明:相對比那些用源碼安裝,少了配置和新建log和data目錄,這種簡單粗暴, mongodb 常用命令: mongo 導入 json 或者csv 做法 mongoimport --db table-name --collection table-name - ...
Centos下通過yum安裝步驟如下:
聲明:相對比那些用源碼安裝,少了配置和新建log和data目錄,這種簡單粗暴,
1,創建倉庫文件, vi /etc/yum.repos.d/mongodb-org-3.4.repo 2,複製下麵配置,保存退出 [mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
3,yum安裝
yum install -y mongodb-org
4,修改配置文件,別的機器也能訪問,不止是 127.0.0.1
vi /etc/mongod.conf -----》bind_ip 預設是127.0.0.1 修改為 0.0.0.0
5,啟動,停止
service mongo start, service mongo stop
6,日誌目錄位置 ---》 cat /var/log/mongodb/mongod.log
資料庫文件 ----》 cat /var/lib/mongo
7,卸載 mongo ----> yum erase $(rpm -qa | grep mongodb-org)
連接mongo的可視化工具我用的是--robo3T 註意的是MongoVUE不支持mongodb3版本的
mongodb 常用命令:
查看資料庫 > show dbs 使用資料庫 > use database-name 查看表 > show tables 查詢數據 > db.table-name.find({}) 查詢條件 > db.table-name.find({'name':'zhangsan'})
建立索引
> db.table-name.ensureIndex({'name':1}) 1為升序,-1為降序
複合索引
> db.table-name.ensureIndex{{'name':1,'age':1}} 只查詢name會索引。如果只查詢age不會用到索引,如果想用索引前面必須有N個索引列
查看索引是否建立
> db.table-name.getIndexes()
刪除索引
> db.table-name.dropIndex({'name':1})
管理索引,查看所有索引:
> db.system.index.find()
插入欄位
> db.table-name.update({query},{$set:{'status':'1'}},false,true)
false: 欄位存在不插入,預設為false
true: 只更新第一條記錄,如果為true 全部更新
mongo 導入 json 或者csv 做法
聲明:4G的 .sql文件(20050144條數據)導入mongodb 總共時間為 28分鐘 + 25分鐘 + 15分鐘
①,28分鐘: 在linux 中 source ./.sql目錄 導入資料庫
②,25分鐘: 用Navicat for MySQL 導出格式為csv 或者json
③,15分鐘: 用mongo自帶的mongoimport命令 上傳csv或者json
前2步傻瓜式操作,唯一註意的是②步:
json格式情況下: 4G大小的.sql文件,如果用navicat轉為json大小為11G,11G的json上傳mongo會 ‘/a’錯誤,實驗200MB的沒有問題
csv格式情況下: 4G大小的.sql文件,如果用navicat轉為csv大小還是4G,其中csv會是亂碼,不用管,直接上傳mongo沒有問題,
navicat導出的時候選擇一定選擇 ’包含列的標題‘ 後期上傳名mongdb時候可以少填寫參數為列
導入命令如下:mongoimport --db table-name --collection table-name --file /test.json
json:
csv:
mongoimport --db table-name --collection table-name --type csv --headerline --ignoreBlanks --file /test.csv --numInsertionWorkers 4
導出命令如下:
json:
mongoexport --db table-name --collection table-name -o /test.json
csv:
mongoexport --db table-name --collection table-name --csv -f id,province,city -o /test.json
--csv 指要要導出為csv 格式,導出csv之後必須指明導出的列
-f 指明需要導出哪些列
參數說明
--db 指明使用的庫, 本例中為” table-name”
--collection 指明要導出的表, 本例中為”table-name”
--type 指明導入的類型,預設的為json
--headerline 僅適用於導入csv,tsv格式的數據,表示文件中的第一行作為數據頭
--ignoreBlanks 忽略空白符
--file 文件的位置
--numInsertionWorkers 為了提高mongo的插入效率,採用mongodb推薦的(numInsertionWorkers)多線程操作。本質來說,就是將insert任務,拆分成多個線程來做。