mongoDB下载地址:mongodb:https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2012plus-4.2.6-signed.msi
-
找到安装目录下的
bin
目录,复制路径,添加到环境变量中 -
在非系统盘创建空
mongoDB
文件夹并创建空的日志文件夹以及创建空的数据库文件夹
比如: D:\mongoDB -> 总数据库文件夹
D:\mongoDB\db -> 空数据库存储文件夹
D:\mongoDB\log -> 空日志文件夹
- 把
mongod
挂载成Windows
上作为一个服务运行:此电脑 > 鼠标右键 > 管理 > 服务和应用程序 > 服务
mongod -> mongod指令
--dbpath="D:\mongoDB\db" -> 指定数据库存储路径
--logpath="D:\mongoDB\log\mongodb.log" -> 指定日志文件输出路径
--install -> 在windows上安装mongod服务
--serviceName="MongoDB" -> 指定服务名称
// 在CMD中运行下方指令
// 64位操作系统命令:
mongod --dbpath="D:\mongoDB\db" --logpath="D:\mongoDB\log\mongodb.log" --install --serviceName="MongoDB Server"
// 32位操作系统或者安装mongodb Vue(可视数据库)时的命令:
--storageEngine="mmapv1" -> 存储引擎必须使用mmapv1 单个集合最大数据数为2G (老的储存引擎)
mongod --storageEngine="mmapv1" --dbpath="D:\mongoDB\db" --logpath="D:\mongoDB\log\mongodb.log" --install --serviceName="MongoDB Server"
- 开启/关闭服务: 在
CMD
中运行下方命令:重点
net start mongodb -> 开启服务
net stop mongodb -> 关闭服务
sc delete xxx -> 卸载服务(xxx可代表计算机中的任何服务名称)
-
mongodb
操作指令:重点
mongo -> 进入数据库管理模式
exit -> 退出数据库管理模式
-
数据库命令:
重点
- 显示所有的数据库列表
show dbs -> 查看其服务器中所有数据库
- 创建数据库,进入,切换数据库
use xxx -> 如果该数据库存在则进入该数据库,如果不存在该数据库则创建该数据库
- 查看当前数据库
db -> 查看当前所在数据库名称
- 删除数据库: 确保db当前指向在当前需要删除的数据库下
db.dropDatabase()
- 显示所有的数据库列表
-
集合命令:
重点
- 显示当前数据库中的所有集合
show collections
- 在数据库下创建一个集合并插入一条数据
[user] -> 数据集合名(mysql中的表)
db.user.insert(json)
- 删除集合
[user] -> 数据集合名(mysql中的表)
db.user.drop()
- 显示当前数据库中的所有集合
-
文档(数据的操作)命令:
重点
-
新增数据
[user] -> 数据集合名(mysql中的表)
db.user.insert(json || bson) -> 推荐使用该方法
例如:db.user.insert({ "key": "value" })
- 单条添加数据时
db.user.insertOne({ "key": "value" }) -> 同上方添加方法
- 批量添加数据时
db.user.insertMany([数组数据]) -> 推荐使用该方法
例如:db.user.insertMany([ { key: value }, { key: value } ])
db.user.save(json || bson)
例如:db.user.save({ "key": "value" })
// insert和save的区别: .insert : 单纯的向集合插入一条数据 -> 推荐使用该方法 .save : 向数据库中添加一条数据,如果该数据已存在则更新该条数据
- 单条添加数据时
-
查询数据
[user] -> 数据集合名(mysql中的表)- 查找当前集合中的所有数据
db.user.find()
- 查找符合条件的所有数据
db.user.find({ 条件 })
- 查找符合条件的第一条数据: 不常用
db.user.findOne({ 查询条件 })
- 格式化查询出来的数据: 适用于CMD窗口
db.user.find().pretty()
- 查找当前集合中的所有数据
-
修改数据
[user] -> 数据集合名(mysql中的表)
db.user.update({ 查询数据的条件,如: id: 1 }, { 修改的数据,如: age: 55 }) -> 不加$set则修改整条数据 查询id为1的这一条数据修改其age的值为55 db.user.update({ 查询数据的条件,如: id: 1 }, { $set: { age: 999 } }) -> 加了$set, 则修改其中的部分数据
修改数组
查询id为1的这一条数据并向该数据中的news数组中添加一条新数据,如该数据存在则不添加,如数据不存在则添加 -> $push则直接添加并不会查找是否存在该元素
db.user.update({ 查询数据的条件,如: id: 1 }, { $addToSet: { news: { title: '123465', detail: '123' } } }) -> $addToSet, 则表示向数组中添加数据
统一给该集合中所有的文档添加某个参数:works
db.user.bulkWrite([{ updateMany:{filter:{}, update:{ $set:{ works: [] } }, upsert:1} }])
-
删除数据
db.user.remove({}) -> 删除当前集合中的所有数据
db.user.remove({ 条件对象,如: age: 18 }) -> 删除当前集合中的指定的数据,删除当前集合下的所有age等于18的
-
-
文档查找高级命令
[user] -> 数据集合名(mysql中的表)- 查找指定数据
db.user.find({ sex: '女' }) -> 查找user下的所有数据: 查找集合中为女性的用户
- 查找范围
$lte -> 小于等于 $lt -> 小于 $gte -> 大于等于 $gt -> 大于 db.user.find({ age: { $lte: 24, $gte: 21 }, sex: '男' }).pretty() -> 查找user下的所有数据: 年龄小于等于24岁大于等于21岁的男性用户
- 非 -> 很少用到,一般用a项
db.user.find({ sex: { $ne: '男' } }).pretty() -> 查找user下的所有数据: 非男性用户
- 取模运算查找 -> 很少用到
db.user.find({ age: { $mod: [2, 0] }}).pretty() -> 查找user下的所有数据: 年龄 age % 2 === 0 的用户(偶数)
- 枚举查找(批量:范围查找)
db.user.find({ age: { $in: [18,20,21] }}).pretty() -> 查找user下的所有数据: 年龄为18/20/21的所有用户 非 -> 很少用到 db.user.find({ age: { $nin: [18,20,21] }}).pretty() -> 查找user下的所有数据: 年龄不为18/20/21的所有用户
- 查找数据下的某个属性,数组的个数
db.user.find({ works: { $size: 0 } }) -> 查找user下的所有数据: works数组length为0的所有用户
- 查找数据下的某个属性是否存在
db.user.find({ age: { $exists: true } }) -> 查找user下的所有数据: age属性存在的用户
- 多条件查询:或
db.user.find({ $or: [{ age: 20 }, { sex: '男' }] }) -> 查找user下的所有数据: age=20或者sex=男 的所有符合其中一项条件的用户
- 模糊查询
db.user.find({ name: /小/imxg }) -> 查找user下的所有数据: name中带有“小”字的所有数据
- 查找指定数据
-
文档其他命令
[user] -> 数据集合名(mysql中的表)- 排序
1 -> 升序排列 -1 -> 降序排列 db.user.find().sort({ fraction: -1, age: 1 }) -> 查找user下的所有数据: fraction降序排列并且age升序排列
- 限定输出多少条数据
db.user.find().limit(3) -> 查找user下的所有数据: 限定输出3条数据
- 限定输出多少条数据
可做分页
db.user.find().limit(3).skip(3) -> 查找user下的所有数据: 限定输出3条数据并跳过前三条数据
- 查看输出数据条数
db.user.find().count() -> 查找user下的所有数据: 查看输出数据条数
- 排序
网友评论