1. 程式人生 > 實用技巧 >mongodb下載安裝和基本操作

mongodb下載安裝和基本操作

MongoDB 是一個基於分散式檔案儲存的資料庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴充套件的高效能資料儲存解決方案。
MongoDB 是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。

好吧,上面是關於mongoDB資料庫的介紹,它不是我們今天的重點。下面步驟才是重點:

一、下載MongoDB安裝包:

1、網盤下載:連結:https://pan.baidu.com/s/1k1Rq7RZ8ubui4AFJ8BqfPw 提取碼:45ju
2、官網下載:地址:https://www.mongodb.com/try/download/community,然後點選Download下載即可。
3、歷史各個版本下載地址:

http://dl.mongodb.org/dl/win32/x86_64


二、安裝MongoDB

雙擊執行剛剛下載的安裝包:

接下來請按照圖片順序進行操作:









三、配置Mongodb環境

點選 -> 我的電腦右鍵 -> 屬性 -> 高階系統設定 -> 環境變數

在Path路徑下新增MongoDB的安裝路徑。我的路徑是:D:\workapp\mongodb\bin。

如下圖:

MongoDB將資料目錄儲存在 db 目錄下。但是這個資料目錄不會主動建立,我們在安裝完成後需要建立它。
請注意,資料目錄應該放在根目錄下((如: C:\ 或者 D:\ 等 ),同時在data檔案下建立一個新資料夾logs(用來存放日誌檔案)。下面是我新增的檔案路徑。

四、測試MongDB是否安裝成功

1、快捷windowns+R進入cmd命令列中:輸入命令 mongod --dbpath D:\data\db 回車。

2、在瀏覽器輸入http://localhost:27017 (27017是mongodb的埠號)進行查詢。顯示如下,表示連線成功。如果不成功,可以檢視埠是否被佔用。

3、Ctrl+C退出資料庫

五、配置 MongoDB 啟動服務

管理員的身份開啟cmd,輸入以下程式碼,注意根據data檔案的路徑配置。配置後可設定為開機自啟動,可直接手動啟動關閉,可通過命令列net start MongoDB 啟動。

mongod --logpath "D:\data\logs\mongodb.log" --logappend --dbpath "D:\data\db" --directoryperdb --install

啟動服務:net start MongoDB


停止服務:net stop MongoDB

六、MongoDB 後臺管理 Shell

如果你需要進入MongoDB後臺管理,你需要先開啟mongodb裝目錄的下的bin目錄,然後執行mongo.exe檔案,MongoDB Shell是MongoDB自帶的互動式Javascript shell,用來對MongoDB進行操作和管理的互動式環境。

比如我的路徑:D:\workapp\mongodb\bin\mongo.exe
當你進入mongoDB後臺後,它預設會連結到 test 文件(資料庫):

附:Mongodb常用命令(來自網路)

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: 倒序