[MongoDB]入门笔记
Posted 小碎石
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[MongoDB]入门笔记相关的知识,希望对你有一定的参考价值。
一、安装
在window上进行MongoDB的安装
1. 获取系统版本信息
打开cmd运行
wmic os get caption
wmic os get osarchitecture
2. 下载MongoDB
目前最新稳定版 3.4.3
直接双击安装,安装完成后将安装路径保存在系统环境变量中
3. 设置运行环境
需要一个数据目录来存储所有的数据,数据目录格式是 \data\db (后面会有用)
于是在任意位置上新建一个 \data\db 文件夹目录
并使用 --dbpath [path] 命令将这个目录设置为数据存储目录,同时启动mongod.exe(在cmd中运行该程序,所以可以直接将程序拖放到cmd中。也可以像下面那样直接输入程序所在路径)
"..\mongod.exe" --path "E:\mongoDBStore\data" [..\是mongod.exe所在路径]
执行命令后等待输出
waiting for connections on port 27017
4. 启动mongo.exe连接服务
mongo.exe
输出
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.3
5. 打开浏览器输入 localhost:27017
It looks like you are trying to access MongoDB over HTTP on the native driver port.
二、将mongodb配置为window服务 [配置完成后服务名为 MongoDB]
##1. 在数据目录data下新建一个mongo.config文件 [后面系统会自动创建这个文件]
2. 在数据目录data上新建一个文件夹log 并在其中新建一个文件 mongodb.log
3. 编辑 config文件,给dbpath和logpath这两个变量赋值,dbpath就是前面你新建的那个数据目录data文件夹,而logpath则是第二步你所新建的那个log文件路径。
dbpath = E:\mongoDBStore\data
logpath = E:\mongoDBStore\data\log\mongodb.log
4. 在cmd中运行
"..\mongod.exe" --config "E:\mongoDBStore\data\mongo.config" --install
5. 启动服务 cmd运行命令
net start mongodb
命令行输出: MongoDB服务正在启动... 服务已经启动完成
6. 关闭服务
net stop mongodb
7. 卸载服务
sc.exe delete mongodb
8. 启动客户端连接服务
直接双击运行 mongo.exe
或者在cmd命令行中使用 mongo mongodb://localhost:27017/[dbname]
三、基本操作
1. 数据库基本操作
查看数据库 show dbs
选择数据库或者新建数据库 use [database]
查看数据库下的所有集合 show collections
查看当前数据库 db
删除当前数据库 db.dropDatabase()
删除数据库中某个集合 db.[collection].drop()
2. 插入数据,查找数据
db.[collection].insert()
db.[collection].save()
db.[collection].find()
上面三个方法分别表示插入与查找数据库集合中的数据
通过find()方法可以查询指定条件的数据集合。接着可以通过
.count()
.skip()
.limit()
.sort()
这四个方法对查询结果进行更近一步的筛选
3. 更新数据
save()方法既可以插入数据,也可以更新数据。取决于id字段
另外一个更新数据的方法就是update()
为了实现部分更新,需要使用 $set语法
db.student.insert({name: ‘joyjoe‘, age: 20, sex: ‘male‘}) db.student.insert({name: ‘lucy‘, age: 25, sex: ‘female‘}) db.student.insert({name: ‘anna‘, age: 18, sex: ‘female‘}) // anna同学的年龄登记错了需要修改 db.student.update({name: ‘anna‘}, {$set: {age: 20} }) // 把anna同学的登记信息修改后只留下了年龄 db.student.update({name: ‘anna‘}, {age: 20})
update()方法的第三个参数用来指明当查找的数据不存在时是否会自动插入这条新数据。默认false不插入
update()方法的第四个参数用来指明是否把查找出来的所有数据全部进行更新。默认false只更新第一条数据
4. 数据删除
remove() 默认删除所有满足条件的数据
所以不传入参数是会系统报错的
设置第二个参数justOnly为true可以只删除第一条数据
四、索引
查询集合中所有索引 db.[collection].getIndexes()
给集合添加新的索引(仅对于空集合)
db.[collection].ensureIndex() 参数也是JSON对象,键表明索引字段,值表明排序方向。
db.[collection].createIndex() 创建索引 (推荐)
索引有很多,分别为: _id索引
1. _id索引(集合默认索引)
2. 单键索引(需要手动创建) 为基本数据类型的数据创建索引
3. 多键索引 为数组中的每个元素添加索引
4. 复合索引 为多个字段值创建索引,可以支持匹配多个键的查询
5. 过期索引 一段时间过后就会过期的索引,同时相应数据也会删除。适用于日志记录和用户登录信息存储等数据
db.createIndex( { }, { expireAfterSeconds: 10 }) (单位 秒)
存储在过期索引中的值必须是指定的时间类型,如果指定了数组,则按照最小值进行判断删除。同时不能是复合索引,删除时间是不精确的。
6. 全文索引
7. 地理位置索引
五、权限认证
在 mongo.config文件中开启权限认证,在文件中进行配置
auth = true
重启服务后,在log文件中可以找到
authorization: "enabled"
此时还没有创建用户,依然可以匿名登陆。
1. 如何创建用户
createUser() 传入JSON对象
{
user: "<name>",
pwd: "<cleartext password>",
customData: { <any information>},
roles: [{ role: "<role>", db: ["<database>"...] }...]
}
role: read, readWrite, dbAdmin, dbOwner, userAdmin
以上是关于[MongoDB]入门笔记的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB快速入门学习笔记3 MongoDB的文档插入操作
MongoDB快速入门学习笔记7 MongoDB的用户管理操作