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})
强制创建时会删除重复记录!