MongoDB安裝+環境配置+經常使用命令

是什麼?
MongoDB是一個基於分佈式文件存儲的數據庫。由C++語言編寫。旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。
特色:高性能、易部署、易使用,存儲數據很是方便。
安裝+配置
第一步:安裝mongdb
1.選擇custome
2.修改安裝地址 C:\MongDB
3.修改環境變量 找到bin路徑 C:\MongDB\bin 配置到全局環境變量
    win10---計算機---屬性---高級系統設置---高級---環境變量---系統變量---找到Path---編輯---新建---把路徑複製進去
 
第二步:啓動mongo
1. 進入mongoDB 目錄 ,新建 data文件夾 ,用來保存數據
2. 進入 data文件夾, 在data內新建 db 文件夾 用來保存數據庫數據
3. 命令cmd執行 mongod --dbpath C:\MongoDB\data\db
4. port 27017 瀏覽器輸入 http://localhost:27017/ 成功打開
5. 新建cmd 輸入 mongo 進入mongoDB Shell
 
第三步:建立 MongoDB 服務 (必須管理器權限)
1. 切換到 Mongodb 的 data 下,新建一個log 文件夾 ,存儲登陸日誌
2. 切換到 data 下的 log ,新建 一個文件 mongo.log 存儲登陸日誌
3. 切換到 C:\MongoDB 新建 mongo.config 配置文件,文件內寫入:
dbpath=C:\MongoDB\data\db
logpath=C:\MongoDB\data\log\mongo.log
4. 新建cmd 輸入 mongod --config C:\MongoDB\mongo.config (啓動mongodb) 測試
5. 建立 mongodb 服務 mongod --config C:\MongoDB\mongo.config --install --serviceName "MongoDB" (必須管理員 關閉第四步 )
6. 啓動 mongodb 服務 net start MongoDB
net stop MongoDB   中止mongdb服務
SC delete MongoDB 刪除MongoDB 服務
查看 services.msc
 
經常使用命令
1、經常使用指令
mongo 進入mongodb Shell
show dbs 顯示全部的數據庫
db 查看當前數據庫
use kuname 建立或者切換數據庫
show tables  查看錶
show collections  查看錶
 
db.stats()顯示當前DB狀態
db.version()查看當前DB版本
db.getMongo()查看當前DB的連接機器地址
db.dropDatabase()刪除數據庫
 
2、MongoDB 增刪改查
(一)插入
tablename至關於mysql中的table表名,MongoDB中的collection集合
db.tablename.insert()
db.tablename.insert({username:"張三"})   添加一條數據
db.tablename.insert([{username:"張三"},{username:"李四"}])   以數組的形式添加多條數據
db.tablename.insertOne() obj 只能插入一條數據
db.tablename.insertMany() array 只能接受數組
db.tablename.save() 相似 insert

(二)修改 update
db.tablename.update(query,object);  query:update的查詢條件,相似sql update查詢內where後面的。
db.tablename.update({username:"wh1803"},{$set:{增長的內容}})
db.tablename.update({username:"張三"},{$set:{password:"abc123"}}    在username爲張三的文檔後面增添一個passsword爲abc123
db.tablename.update({username:"張三"},{$set:{username:"李四"}}        將username爲張三的數據修改成username爲李四
dbtablename.update({},{$set:{password:"abc123"}})                              默認修改第一條數據
db.tablename.update({username:"cd1706"},{$set:{password:"abc123"}},true);
能不能查詢到 (查不到)
true 查不到就直接插入
false 查不到就不插入 默認爲false
 
修改多條數據
db.tablename.update({},{$set:{password:"abcd12456"}},true,true);
true 表示修改知足條件的全部數據 updateMany
false 表示修改知足條件的第一條數據 updateOne 默認false
db.tablename.updateOne({},{$set:{age:28}});
db.tablename.updateMany({},{$inc:{age:12}});   $inc對文檔的某個值爲數字型(只能爲知足要求的數字)的鍵進行增減的操做。這裏表示給符合條件的數據的age加12。
 
(三)刪除 deleteOne
db.tablename.deleteOne({username:"張三"}) 刪除一條username爲張三的數據
db.tablename.deleteMany() 刪除多條數據
db.tablename.remove(query) 刪除全部知足條件 的 文檔
db.tablename.remove(query,n); 表示刪除的數據量 n 只能刪除一條數據 第一條數據
db.tablename.drop(); 刪除當前集合 collection(mysql中所謂的表)
 
(四)查詢 find
db.tablename.find() 查詢全部至關於mysql中的 select * from tablename;
db.tablename.find({query},{field})    query爲查詢條件
db.tablename.find({username:"張三"})         查詢username爲張三的文檔
db.tablename.find({username:"張三"},{username:1,_id:0,password:1})   username爲張三的文檔,其中的username顯示,默認id不顯示,password顯示
1 表明顯示     0表明不顯示
  db.tablename.find({},{username:1})       查詢全部數據,只顯示其中的username
 
去重查詢
db.user.distinct("password")
 
$gt    >
$gte  >=
$lt     <
$lte   <=
db.tablename.find({age:{$gt:25}})            選出age大於25的全部文檔
db.tablename.find({age:{$gt:20,$lte:30}})      選出age大於20且小於等於30的全部文檔
 
db.user.find({$or:[{username:"張三"},{age:{$lte:40}}]},{_id:0})      將user集合中username爲張三,或者age小於等於40的文檔,默認id不顯示,其他的顯示出來
至關於mysql中的select username ,password,age from user where username = "張三" or age <=40;
 
模糊查詢
至關於mysql中的like      select * from tablename where username like 'hua%';
db.tablename.find({username:/^hua/});
db.tablename.find({username:/^hua$/});
db.tablename.find({username:/hua4$/});
 
利用正則
var txt = search
new RegExp("+txt+"$")
new RegExp("hua4$");
db.tablename.find({username:new RegExp("^hua")});
 
排序 .sort()
db.movie.find({},{year:1,title:1,_id:0}).sort({year:1}) 1 表示升序
db.movie.find({},{year:1,title:1,_id:0}).sort({year:-1}) -1 降序
 
db.movie.find({},{year:1,title:1,_id:0,"rating.average":1}).sort({year:-1,"rating.average":-1})
db.movie.find({},{year:1,title:1,_id:0,"rating.average":1}).sort({year:-1,"rating.average":1})
 
限制條數 limit
db.movie.find({},{year:1,title:1,_id:0}).limit(10);
 
跳過 skip
db.movie.find({},{year:1,title:1,_id:0}).skip(5);
db.movie.find({},{year:1,title:1,_id:0}).skip(5).limit(10);
db.movie.find({},{year:1,title:1,_id:0}).limit(10).skip(5);
 
長度 條數 count 全部集合數據 size 知足條件的集合數據
db.movie.find({},{year:1,title:1,_id:0}).size();
db.movie.find({},{year:1,title:1,_id:0}).count()
db.movie.find({},{year:1,title:1,_id:0}).skip(5).size();
db.movie.find().skip(5).count()
 
最大值
db.movie.find({},{year:1,title:1,_id:0}).max({"rating.average"})
db.movie.find({},{year:1,title:1,_id:0}).min({"rating.average"})

and 查詢
db.movie.find({year:"1994","rating.average":9.6},{year:1,title:1,_id:0})
 
查詢第一條數據
db.movie.findOne({},{year:1,title:1})
db.movie.find().limit(1);
 
判斷 列 field 是否存在
db.movie.find({year:{$exists:true}},{year:1,title:1,_id:0})
db.movie.find({year11:{$exists:true}},{year:1,title:1,_id:0})
 
$in 包含
db.movie.find({genres:{$in:["犯罪"]}},{year:1,title:1,genres:1,_id:0})

$nin 不包含
db.movie.find({genres:{$nin:["劇情"]}},{year:1,title:1,genres:1,_id:0})
相關文章
相關標籤/搜索