4.0.6版本的網盤地址:
鏈接:https://pan.baidu.com/s/14oXqAuJZplcq2RoDTLn6-Q
提取碼:e572
1下載: https://www.mongodb.com/download-center/community?jmp=nav
3.4.4 的網盤下載地址 https://pan.baidu.com/s/1mhPejwO#list/path=%2Fwindows soft
教程 http://www.imooc.com/article/18438
這里我下載了4.0.6的
2 雙擊下載后的安裝程序,選擇“Complete”安裝完整版本。這個過程非常簡單,除了“下一步”就是最后的“完成”。
安裝好以后接下來是配置
3.配置
3.1 創建D:\mongodb\data\log目錄,用來存放日志文件;
3.2 在D:\mongodb\data\log目錄里新建mongodb.log,用來存放日志信息;
3.3 創建D:\mongodb\data\db目錄,用來存放數據庫數據,
3.4 並在D:\mongodb目錄下創建mongo.config,在文件內部復制如下文本:
##數據文件 此處=后對應到數據所存放的目錄
dbpath=d:\mongodb\data\db
##日志文件 此處=后對應到日志文件所在路徑
logpath=d:\mongodb\data\log\mongodb.log
##錯誤日志采用追加模式,配置這個選項后mongodb的日志會追加到現有的日志文件,而不是從新創建一個新文件
logappend=true
#啟用日志文件,默認啟用
journal=true
#這個選項可以過濾掉一些無用的日志信息,若需要調試使用請設置為false
quiet=true
#端口號 默認為27017
port=27017
4.測試是否安裝成功
進入C:\Program Files\MongoDB\Server\3.4\bin文件夾下,點擊mongod.exe,如果閃一下退出,說明安裝正常
5.安裝服務
用管理員權限打開cmd命令行,輸入如下命令安裝mongodb服務
sc create MongoDB binPath= "C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe --service --config=D:\mongodb\mongo.config"
或先進入C:\Program Files\MongoDB\Server\3.4\bin文件夾,使用如下命令:
mongod --config D:\mongodb\mongo.config --install --serviceName "MongoDB"
或先進入C:\Program Files\MongoDB\Server\3.4\bin文件夾,使用如下命令:
mongod --logpath "D:\mongodb\data\log\mongodb.log" --logappend --dbpath "D:\mongodb\data\db" --serviceName "MongoDB" --install
在cmd.exe上輸入services.msc打開服務管理器,找到MongoDB服務,設置成自動啟動,並啟動
如果啟動不成功,先刪除服務,使用如下命令:
sc delete MongoDB
然后再從第3步開始重新排查各種配置項及操作
6.配置環境變量(可省略)
6.1如果不配置環境變量可進入C:\Program Files\MongoDB\Server\3.4\bin,然后把mongo.exe發送桌面作為快捷方式
6.2 還可以通過設置環境變量的方式,讓mongo命令在所有文件夾內都可以訪問
在系統變量中找到path,window7或window8雙擊打開后在變量值中的末尾增加
;C:\Program Files\MongoDB\Server\3.4\bin\配置成之后,可以在任何目錄下去調用mongo命令,打開如下圖:
注意:Window10 可新建一個選項,輸入C:\Program Files\MongoDB\Server\3.4\bin即可!
7.推薦使用的圖形化工具
Robo 3T 下載地址:
https://robomongo.org/
MongoBooster 下載地址:
http://www.softpedia.com/get/Internet/Servers/Database-Utils/MongoBooster.shtml
一些命令
以下命令是必須掌握的:
mongo
運行mongo
db
顯示當前的數據庫名稱
show dbs
顯示當前服務器下數據庫(非空的數據庫)列表
use test
如果test數據庫不存在,則創建test數據庫
如果test已存在,則切換到test數據庫
show collections
顯示當前數據庫下所包含的集合(表)列表
db.users.insert({name:'zhangsha'})
向users集合中插入數據
如果users集合存在,則直接插入數據,如果不存在,則創建users集合再插入數據
db.createCollection('products')
創建一個空集合products
db.products.insert([{name:'lishi'},{name:'wangwu'}])
一次插入多個數據
db.products.find()
查詢products集合中所有的數據
db.products.find({name:'蘋果手機'})
查詢stu集合中name='蘋果手機'的數據
db.products.find({name:{$eq:'蘋果手機'}})
同上,$eq=>等號,建議使用上面的方式,易記,易輸入
eq = equal
db.products.find({price:{$gt:18}})
查詢stu集合中age>18的數據
把$gt換成如下的符號試試:
$gt=>大於 great
$gte=>大於等於 great equal
$lt=>小於 less than
$lte=>小於等於 less than equal
$ne=>不等於 not equal
$in=>在范圍內
$nin=>不在范圍內
以上幾個符號格式總結為:{ field: {符號: value}}
db.products.find({name:/^華為/})
查找stu集合中name域中以“華為”字符的開頭的數據
db.products.find({name:{$in:['手機1','手機2']}})
查詢stu集合中name='手機1'和name='手機2'的數據
$in=>在范圍內
$nin=>不在范圍內
以上兩個符號格式為:{ field:{符號:[value1,value2,....]}}
db.products.find({name:"華為手機",price:800})
查找name="華為手機"並且price:800的數據
db.products.find({$or:[{name:'華為手機'},{price:{$lt:1000}}]})
查詢products集合中name='華為手機' 或者 price<1000的數據
$or=>或者 注意$or:[{},{},....]
$and=>並且 格式同$or, 例:{$and:[{},{},....]}
$nor=>not or 與$or相反, 格式同$or
db.products.find({price:{$not:{$gt:100}}})
查詢products集合中price<=100的數據,不存在price屬性的數據也會查詢出來
$not=>取反
db.products.find({price:{$exists: true}})
查詢products集合中包含域名稱為price的數據
db.products.find({name:{$type:2}})
查詢products集合中name屬性為字符串類型的數據
db.products.find({
$where: function(){
return this.name == '華為手機'
}
})
查詢products集合中name='華為手機’的數據
db.products.find({
$where: function(){
return this.name.indexOf('華為手機') > -1;
}
})
查詢products集合中name域中包含“華為手機”字符的數據
db.products.update({name:'華為手機'},{$set:{price:2000}},{
upsert: true,
multi:false
})
把products集合中name='華為手機'的那條數據,把price屬性設置成2000,其它屬性保留
$set是指更改的屬性列表,不在列表中其他屬性會被保留,如果不加此符號,其它屬性會被丟棄(_id屬性比較特殊,不會丟失)
upsert:true如果沒有符號條件的更新時,則插入一條,為false時,則不會插入, 默認是false
multi:false一次只能更新一條數據,為true時,可更新多條,默認是false
db.students.remove({})
清空集合students
db.products.remove({name:'abc'})
刪除products集合中name='abc'的數據,注意,即使把集合products中的所有數據都刪除了
products集合仍然存在, remove()是用來刪除數據的,而drop()不僅會刪除數據,還會把
集合的結構給刪除
db.products.drop()
把stu集合徹底從當前數據中刪除,集合stu不再存在,注意與remove()的區別
db.dropDatabase()
刪除當前數據庫
db.users.distinct('name')
查詢users集合中不重復的name屬性,返回的是數組
db.stu.count({name:'zhangshan'})
查詢stu集合中name='zhangshan'的數據數量
db.stu.find().limit(5)
查詢stu集合中前5條數據
db.stu.find().skip(5)
查詢stu集合中跳過前5條后的數據
db.stu.find().sort({name:1})
查詢stu集合中的全部數據,並按name屬性正序排列 注:1:正序 -1: 倒序
由於mongodb的api接口方法很多,除以上命令外,其他的命令請多看官方文檔
要求:根據官方文檔中的方法原型,能夠操作相應的方法