带你详细了解 mongodb 数据库
启动 MongoDB
• 在 C 盘根目录下创建 data 文件夹,在 data 下 创建 db 文件夹
• 打开 CMD 命令行窗口,输入 mongod
• 32 位系统第一次启动:
– mongod --storageEngine=mmapv1
• 出现如下输出
指定端口和路径
• 在控制台启动 MongoDB – mongod --dbpath 路径 --port 端口号
– 示例:
• mongod --dbpath C:\Users\lilichao\Desktop\mongo\data\db --port 123
• 注意:打开的命令行窗口不能关闭
配置 mongo 的 windows 服务
• 在 mongo 安装目录的 server 下 3.x 目录下创建 mongod.cfg 文件,并添加如下内容
systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
• 管理员模式打开控制台,并输入如下指令
sc.exe create MongoDB binPath= "\"mongo bin 路径\mongod.exe\" --service -- config=\"mongo 路径\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
• 删除服务
sc delete MongoDB
关闭 MongoDB
• 打开新的命令行窗口
• 登录服务器 – mongo
• 切换管理员用户 – admin
• 关闭数据库 – db.shutdownServer()
Mongo Shell
• 登录 mongo shell
– mongo
• 命令
– help 语法帮助
– use 更改当前操作的数据库
– show 根据参数显示列表
• dbs 显示数据库列表
• collections 显示当前数据库的集合
• profile 显示时间超过 1 毫秒的 system.profile 条 目
• log[name] 显示登录记忆的最后一段
– exit 退出数据库
– load(script) 加载 js 文件 db.auth(username , password) 在当前数据库做身份验证
三个概念
• 数据库(database) – 数据库是一个仓库,在仓库中可以存放集合。
• 集合(collection) – 集合类似于数组,在集合中可以存放文档。
• 文档(document) – 文档数据库中的最小单位,我们存储和操作的 内容都是文档。
基本概念
• 文档(document)
– 类似于 JS 中的对象,在 MongoDB 中每一条数 据都是一个文档
• 集合(collection)
– 集合就是一组文档,也就是集合是用来存放文 档的
– 集合中存储的文档可以是各种各样的,没有格 式要求
• 多个文档组成集合,多个集合组成数据库
创建数据库
• use 数据库名
– 使用 use 时,如果数据库存在则会进入到相应的数 据库,如果不存在则会自动创建
– 一旦进入数据库,则可以使用 db 来引用当前库
• db.collection.insert(文档)
– 向集合中插入文档,如果集合不存在则创建
• db.createCollection()
– 创建一个新的集合
• db.collection.drop()
– 删除集合
文档的增删改查
• 插入文档 – db.collection.insert ()
• 查询文档 – db.collection.find ()
• 删除文档 – db.collection.remove()
• 修改文档 – db.collection.update()
添加文档
• db.collection.insert (文档对象)
– insert()可以用于向集合中添加一个或多个文档, 可以传递一个对象,或一个数组。
– 可以将对象或数组中的对象添加进集合中
– 添加时如果集合或数据库不存在,会自动创建
– 插入的文档对象会默认添加_id 属性,这个属性 对应一个唯一的 id,是文档的唯一标识
删除文档
• db.collection.remove()
– remove()可以用来移除指定文档对象
– 方法接收一个查询文档作为参数,只有符合条 件的文档才会被删除 – 删除数据是永久的,不能撤销
• db.collection.drop()
– 删除集合
修改文档
• db.collection.update()
• 替换文档 – 可以在 update()中传递两个参数,一个是查询 文档,一个是新的文档,这样符和条件的文档 将会被新文档所替换
– update()的第三个参数,用来指定是否使用 upsert,默认为 false
– update()的第四个参数,用来指定是否同时修 改多个文档,默认为 false
修改器
• 使用 update 会将整个文档替换,但是大部 分情况下我们是不需要这么做的
• 如果只需要对文档中的一部分进行更新时, 可以使用更新修改器来进行。
• 我们将要学习以下几个修改器 – $set、 $unset 、$inc、$push、$addToSet
$set、$unset
• $set 用来指定一个字段的值,如果这个字 段不存在,则创建它。
• 语法: – db.test_coll.update(查询对象, {$set:更新对象});
• $unset 可以用来删除文档中一个不需要的字段, 用法和 set 类似。
$inc
• $inc 用来增加已有键的值,或者该键不存 在那就创建一个
• $inc 只能用于 Number 类型的值
查询文档
• find()、findOne()
– MongoDB 使用 find()来对文档进行查询
– find()需要一个查询文档作为参数,如果不传 该参数,则会返回集合中的所有元素。
– 可以将查询条件以键值对的形式添加到查询文 档中
– 查询条件
• $lt、$lte、$gt、$gte、$ne、$or、$in、$nin、 $not、$exists、$and
关键词:前端培训
评论