MongoDB简介
- 概念:它是一个文档型数据库,它没有表这样的概念;只有集合概念,数据都是以json对象的形式进行存储;集合可以存储任意字段和数据类型的数据。
MongoDB在CMD命令行中的基本使用
- htlp 全局help命令可以查看所有帮助信息
- db 指当前数据库对象
- db.help() 数据库的帮助方法
- db.mycoll.help() 查看集合的方法发(mycoll就是自己定义的集合名字)
- show dbs 展示当前mongodb中所有的业务数据库名字
- show collections 展示当前数据库下的所有集合名字
- use db_name 使用某一个数据库
集成MongoDB到Expres框架
- mkdir 新建文件夹
- npm init -y 初始化项目
- 修改package.json和readme
- 新建index.js
- 安装依赖 express mongoose
npm i express@4 mongoose -S
- 引入框架、实例化、监听端口启动服务、做一个静态服务器
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
const express = require('express')
let app = express()
app.listen(1000,()=>{
console.log('服务以启动')
})
app.use(express.static('public',{index:'login.html'}))
- 引入mongodb模块,新建连接,创建描述,创建模型,创建接口
pie title Pets adopted by volunteers
"Dogs" : 386
"Cats" : 85
"Rats" : 15
const mongodb = require('mongoose')
mongodb.connect('mongodb://127.0.0.1:27017/user',(err)=>{
if(err){
console.log('连接失败')
}
else{
console.log('连接成功')
}
})
const UserSchema = new mongodb.Schema({
id:Number,
name:String
})
const userModel = mongodb.model('userModel',UserSchema,'user')
app.get('/user/list',(req,res)=>{
userModel.find((err,result)=>{
if(!!data){
res.send({
code:500,
msg:'服务器繁忙'
})
}else{
res.send({
code:200,
msg:'服务器响应成功'
data:result
})
}
})
})
运算符
- $gt 大于
- $lt 小于
- $gte 大于等于
- $lte 小于等于
MongoDB操作数据常用命令
增加
- db.user.insert(obj)
- db.user.insertMany([{}])
db.user_info.insertOne({id: 'admin', name: 'admin', age: 20, sex: '男'})
db.user_info.insertMany([{"id":"admin0","name":"admin0","age":21,"sex":"男"},{"id":"admin1","name":"admin1","age":22,"sex":"男"},{"id":"admin2","name":"admin2","age":23,"sex":"男"},{"id":"admin3","name":"admin3","age":24,"sex":"男"},{"id":"admin4","name":"admin4","age":25,"sex":"男"}])
删除
- db.user.deleteOne({条件})
- db.user.deleteMany({条件})
db.user_info.deleteOne({sex: '男'}) 如果是要删除,一般是遍历删除,不允许批量删除,会删除匹配到的第一条数据
修改
- db.user.update({调价},{修改内容})
- db.user.updateOne()
- db.user.updateMany()
db.user_info.update({id: 'admin0'}, {sex: '女'}) 它是精确匹配,然后重置对象
db.user_info.update({}, {sex: '女'}) 把数据全部改为传递第二个参数,他会匹配第一条数据、数据删除
查询
- db.user.find() 查询全部
- db.user.find({条件}) 查询满足条件的
db.user_info.find({age: {$gt: 22}}) 大于
db.user_info.find({age: {$gte: 22}}) 大于等于
db.user_info.find({age: {$gte: 22, $lt: 24}})