本次实例以windows7 64位操作系统为背景
基础篇
参考文章:https://www.runoob.com/mongodb/mongodb-window-install.html
安装MongoDB
MongoDB下载地址
下载完之后点击安装,选择自定义
点击自定义安装目录
去掉默认选项 切忌一定要取消勾选,否则会卡死=-= 亲身经历 等了一个多小时一直卡在最后一步
运行MongoDB服务器
使用cmd定位到根目录的bin目录
新建文件夹用于存放MongoDB数据库 数据库我是存在 d:\data\db
mongod --dbpath d:\data\db
运行成功日志信息
连接MongoDB
在bi目录执行mongo
配置文件mongod.cfg
可以配置ip端口,数据库存放地址以及日志路径
启动MongoDB服务
在bin目录执行以下命令
net start MongoDB
关闭MongoDB服务
net stop MongoDB
移除 MongoDB 服务
mongod.exe --remove
使用
使用bin目录下的mongo.exe调用shell脚本
由于它是一个JavaScript shell,您可以运行一些简单的算术运算:
比如运算加减乘除
1 + 1
创建runoob集合并插入值db.listName.insert(json)
db.runoob.insert({x:100})
db.runoob.find()
也可以找到其中的一个
db.runoob.findOne()
想查看某个命令支持更多命令,比如find,我们再输入db.runoob.find时连续按两次tab键就可以查看更多find命令
删除集合db.drop()
db.drop()
创建test集合并删除
更新文档
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
- query : update的查询条件,类似sql update查询内where后面的。
- update : update的对象和一些更新的操作符(如 , , ,inc…)等,也可以理解为sql update查询内set后面的
- upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
- multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
- writeConcern :可选,抛出异常的级别。
db.skindow.insert({a:1,b:2,c:3})
db.skindow.update({a:1},{$set:{'a':'5'}})
db.skindow.find().pretty()
删除文档
db.collection.remove(
<query>,
<justOne>
)
- query :(可选)删除的文档的条件。
- justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
- writeConcern :(可选)抛出异常的级别。
db.skindow.remove(a:5)
查询文档
db.collection.find(query, projection)
- query :可选,使用查询操作符指定查询条件
- projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
配合pretty() 方法以格式化的方式来显示所有文档。
db.skindow.find({a:1}).pretty()
MongoDB $type 操作符
类型 | 数字 | 备注 |
---|---|---|
Double | 1 | |
String | 2 | |
Object | 3 | |
Array | 4 | |
Binary data | 5 | |
Undefined | 6 | 已废弃。 |
Object id | 7 | |
Boolean | 8 | |
Date | 9 | |
Null | 10 | |
Regular Expression | 11 | |
JavaScript | 13 | |
Symbol | 14 | |
JavaScript (with scope) | 15 | |
32-bit integer | 16 | |
Timestamp | 17 | |
64-bit integer | 18 | |
Min key | 255 | Query with -1. |
Max key | 127 |
db.skindow.find({c:{$type:2}])或者db.skindow.find({c:{$type:'String'}]) 查询属性为c,内容格式为字符串的内容
db.skindow.find({c:{$type:1}])查询属性为c,内容格式数字的内容
获取某部分数据或者跳过某部分数据 Limit与Skip
db.skindow.find().limit(1) 获取前面1条数据
db.skindow.find().skip(1) 跳过第一条数据
db.skindow.find().limit(2) .skip(1)获取第二条数据
排序sort
db.skindow.find({},{c:1,_id:0}) 只输出含有c属性的文档
db.skindow.find({},{c:1,_id:0}).sort({c:1}) 获取c属性的文档 c属性里的内容从小到大排序输出
db.skindow.find({},{c:1,_id:0}).sort({c:-1}) 获取c属性的的文档 c属性里的内容从大到小排序输出
查看MongoDB实例中的db show dbs
show dbs
切换db use 名称
注意如果名称不存在则创建该名称的数据库
use admin
删除数据库 db.dropDatabase()
db.dropDatabase()
首先需要切换到你要删除的数据库,然后使用该命令进行删除
获取更多命令help
help