1,安裝:以我本機為例:
1)命令安裝方式:
1.1 將下載下來的壓縮包解壓到?D:\Installed\MongoDB 下面。
1.2 以管理員方式打開命令提示符,將目錄切換到?D:\Installed\MongoDB\bin下面(也可以通過設置環境變量,這樣就不用切換目錄了)。
1.3 運行下面的命令
mongod --dbpath?D:\Installed\MongoDB\data\db?--logpath?D:\Installed\MongoDB\log\mylog.log --install --serviceName "MongoDB"
運行完成后在瀏覽器輸入如下URL:
http://localhost:27017/
? ?如果出現類似下面的內容,就說明安裝成功了:
You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number
?
命令解釋: --dbpath mongodb數據庫文件的存放位置; --logpath mongodb日志文件的位置 ? --serviceName mongodb的服務名稱
?
2)配置文件方式安裝(推薦)?
2.1 新建一個配置文件mongod.cfg(名字不是強制的),放在D:\Installed\MongoDB 下面(位置也不是強制的),配置文件寫入如下內容:
dbpath=D:\Installed\MongoDB\data\db
logpath=D:\Installed\MongoDB\log\mongod.log??
這些內容是mongodb 安裝時的配置信息
2.2 以管理員方式進入命令提示符,運行如下命令:
mongod --config d:\mongodb\mongod.cfg --install?
安裝成功后服務名默認為MongoDB
?
===================================mongodb 常用命令及索引操作
常用命令:
====查看當前數據庫狀態
db.stats()
===個性化系統可以幫助標記效率慢的查詢,開啟命令如下:
db.setProfilingLevel(1)
==查看個性化數據,輸出所有查詢用時超過100ms的日志
db.system.profile.find({millis:{$gt:100}})
==查看復制信息
rs.status()
===查看鎖情況
use config
db.locks.find()
========數據庫備份步驟:
1,將緩存中的數據寫入磁盤,同時鎖住數據庫,不允許再寫數據
db.fsynclock()
2,創建快照
3,將數據庫解鎖
db.fsyncUnlock()
=======創建索引
ensureIndex()
=例子1:
{"field1":1}
{"field2,field3":1}
{"field2":1,"field3":1}
索引也可以建立在子文檔上,比如:
db.factories.find({metro:{city:"New York",state:"NY"}})
=例子2:people類如下:
{
"_id":ObjectId(),
"name":"john smith",
"address":{
"street":"Main",
"zipcode":100081,
"state":"WI"
}
}
建立索引的語句:
db.people.ensureIndex("address.zipcode":1)
=組合索引
products的collection如下:
{
"_id":ObjectId(...),
"item":"Banana",
"category":["food","produce","grocery"],
"location":"4th Street Store",
"stock":4,
"type":cases,
"arrival":Date(...)
}
建立組合索引的語句:
db.products.ensureIndex({"item":1,"location":1,"stock":1})
==多鍵索引
一個字段的值是一個數組,那么在這個字段上建立的索引會索引數組中的每一個元素。
例子:
{
"_id":ObjectId("..."),
"name":"Warm John",
"author":"li ke",
"tags":["weather","hot","record","april"]
}
==唯一索引:
例子:為user_id建立唯一索引:
db.addresses.ensureIndex({"user_id":1},{unique:true})
===sparse index
db.addresses.ensureIndex({"xmpp_id":1},{sparse:true})
==========創建索引的參數
==后臺創建索引,不影響數據庫實例的使用
db.people.ensureIndex({zipcode:1},{background:true,sparse:true})
==強制創建唯一索引
db.accounts.ensureIndex({username:1},{unique:true,dropDups:true})
強制創建時會刪除重復記錄!?
?
?
?
mongodb之基礎操作