概述
- 基于
json
,输入js
语句 - 对比
mysql
database
–database
table
–collection
行
–文档
字段
–字段
安装
- 下载,安装
- 配置环境变量
path
,把安装好的mongodb
目录下的bin
目录路径放入 cmd
输入mongod
启动服务器- 另一个
cmd
输入mongod --dbpath C:\...路径.. --port 10086
改变默认创建数据库路径,改变端口号<65535
- 默认
bin
下的data
- 默认
- 另一个
cmd
输入mongo
连接mongodb
- 出现
>
表示连接成功
- 出现
- 把
mongodb
变成系统服务,开机自启- 百度
- 大概步骤,1.创建配置文件
mongod.cfg
,写入配置信息,2.放到bin
同级目录下,3.管理员打开cmd
执行命令
新版本直接自启了,不用配置
安装图形界面
类似mysql
的workbench
- 百度下载
mongodbmanagerfree_inst.exe
可以百度破解的
navicat
,对大部分数据库都有图形管理系统
还有其他的
—## 基础命令
show databases/dbs
显示所有数据库use 数据库
进入数据库- 如果不存在,会自动创建
db
当前数据库show collections
查看所有集合
自动添加
_id
字段,也可自己指定
— ## 增删改查
— \n### 增加
接下来笔记db.<collection>
省略
db.<collection>.insert({})
添加文档.insert([{},{},{}])
添加多个文档
.insertOne({})
插入一个.insertMany([{},{}])
插入多个
查
db.<collection>.find()
查所有文档.find({name:"...",age:""})
查询指定文档,{}内为且关系.find({$or:[{name:"...",age:""},{name:"..."}]})
查询指定文档,[]
内为或关系.findOne({})
查询符合条件的第一个文档.find({}).count()
查询满足条件的数量.length
也行
改
db.<collection>.update({},{})
修改指定文档,前面{}
是条件- 默认会把后面
{}
将指定文档覆盖;默认只修改一个 .update({},{$set:{name:""}})
修改指定文档指定字段.update({},{},{multi:true})
修改所有指定文档.updateOne({},{})
修改满足条件的第一个文档.updateMany({},{$set:{}})
修改多个满足条件的文档的指定字段;$set
也适用于其他
- 默认会把后面
删
db.<collection>.remove({},{})
删除指定文档,前面{}
是条件- 类似
find
- 默认删除多个
.remove({},true)
删除一个.remove({},{$unset:{name:""}},true)
删除第一个指定文档指定字段
- 类似
.deleteOne({}) = .remove({},true)
.deleteMany() = .remove()
删除集合
db.<collection>.drop()
其他
.find().skip(10).limit(10)
跳过10条查看前十条(也就是看到第11-20条).find().sort(字段:1)
按字段升序;默认以_id
.find().sort(字段:-1)
按字段降序;默认以_id
.find({},{name:1})
只显示符合的文档的name
字段和_id
字段.find({},{name:1,_id:0}
)只显示符合的文档的name
字段
修饰符
类似$set,看文档
nodejs操作mongodb
-
安装
mongoose
- 本质就是对
nodejs
原生的mongoDB
的封装
- 本质就是对
-
引入
-
连接
mongodb
数据库mongoose.connect("mongodb://127.0.0.1:27017/test")
-
监听连接状态
mongoose.connection.once('open',()=>{})
-
监听连接状态
mongoose.connection.once('close',()=>{})
-
断开连接
mongoose.disconnect()
-
创建一个
schema
(模式)对象new mongoose.schema({})
-
创建
model
(数据库中的集合)mongoose.model('需要映射的集合名',schema模式对象)
- 需要映射的集合名会自动变成复数
-
Model
的方法- 文档
- 他的方法最后多一个回调
(err,document)=>{}
,document
就是Model
的实例对象 .create = .insert
.find = .find
-
创建文档对象
const doc = new UserModel({})
- 对
doc
进行操作,操作方法见文档 - 操作完成后
doc.save()
保存修改即保存到数据库了
const mongoose = require('mongoose')
//连接
mongoose.connect("mongodb://127.0.0.1:27017/test")
//创建schema模式对象
const schema = mongoose.Schema
const userSchema = new schema({
username: String,
age: Number,
password: {
type: String,
default: '22222'
}
})
//创建Model
const userModel = mongoose.model('user', userSchema)
//添加文档,添加后才创建集合
userModel.create({
username:'xz',
age:90,
password:'7347283742'
},
(err) => {
if (err) console.log(err.message)
})
//监听连接状态
mongoose.connection.once('open', () => {
console.log('数据库连接成功');
})
mongoose.connection.once('close', () => {
console.log('数据库断开成功');
})
前面连接数据库的代码和创建
Model
的代码可以分别搞两个模块