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
1. 切換到 Mongodb 的 data 下,新建一個log 文件夾 ,存儲登陸日誌
2. 切換到 data 下的 log ,新建 一個文件 mongo.log 存儲登陸日誌
3. 切換到 C:\MongoDB 新建 mongo.config 配置文件,文件內寫入:
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
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})