数据库(DataBase)
- 传统数据库(关系型数据库):MySQL、SQL Server、Oracle
- 非关系型数据库:MongoDB、Radis、MemoryCache
非关系型数据库应用场景
- 日志管理
- 无关联的数据信息
- 数据量特别大
传统数据库层次结构
Database => Table => Row
MongoDB数据库层级结构
常用的命令
打开CMD输入:mongo 回车
show dbs | 查看所有数据库名称列表(show:显示) |
---|---|
use 数据库名 | 切换到指定的数据库中,如果没有则创建并跳转 |
db | 查看当前的数据库名称 |
show tables/show collections | 查看当前数据库中所有集合 |
db.creatCollection(‘集合名称’) | 创建一个空集合 |
db.集合名称.insert([{属性名:‘属性值’}]) | 给这个集合添加n组对象数据(如果只添加一组对象,则不需要使用中括号。例如:db.room.insert({name:‘myroom’,area:‘120/^2’,email:‘112233@lsh.com’})) |
db.集合名称.find() | 查看当前集合的全部数据 |
db.集合名称.remove({key:value}) | 删除符合指定key-value条件的数据 |
db.集合名称.drop() | 删除当前集合 |
db.集合名称.update({筛选条件},{$set:{修改的内容}}) | 修改(一次只改一行) |
db.集合名称.update({筛选条件},{$set:{修改的内容}},{multi:true}) | 修改(修改所有满足筛选条件的所有对象,如果更新之前没有的东西,则会直接添加进去) |
db.集合名称.update({筛选条件},{$unset:{修改的内容}}) | 修改:删除满足条件对象的某个属性 |
db.集合名称.find(条件名:{$lt:‘属性值’}) | 查找满足条件的对象( l t : 小 于 、 lt:小于、 lt:小于、lte:小于等于、 g t : 大 于 、 gt:大于、 gt:大于、gte:大于等于、$ne:不等于) |
db.集合名称.findOne(条件名:{$lt:‘属性值’}) | 查找一个满足条件的对象 |
步骤:show dbs => use 数据库名 => 增删改查
连接
npm install mongoose@5.0.15
// 创建:db.js
const mongoose = require('mongoose')
mongoose.connect('mongodb://127.0.0.1/数据库名') // connect:连接
// 如果链接成功
mongoose.connection.on('connected', function () {
console.log('成功');
})
mongoose.connection.on('error', function () {
console.log('错误');
})
mongoose.connection.on('disconnected', function () {
console.log('断开连接');
})
module.exports={
mongoose
}
// 创建:Room.js
const { mongoose } = require('./db')
// 创建hoom模型规则
var myRoom = mongoose.Schema({ // Schema:模式
name: { type: String, required: true }, // required:必须的
money: { type: String },
area: { type: String },
email: { type: String, },
age: { type: Number, min: 0, max: 150 },
sex: { type: String, enum: ['男','女']} // enum:枚举
})
var room = mongoose.model('room',myRoom) // room/rooms均对应数据库rooms
module.exports={
room
}
// 创建:cs.js
const {room} = require('./Room')
console.log(room);
增(在cs.jd中写入)
// 添加
function add() {
room.create({ // creat:创建
name: '洗衣间',
money: '1300/m^2'
}, function (err, data) {
if (err) {
console.log(err);
}
console.log(data);
})
}
// add()
function add2() {
var s = new room({
name: '晾晒间',
money: '800/m^2'
})
s.save(function (err, res) { // save:保存
console.log(res._doc);
})
}
// add2()
改
// 修改多个
function update() {
var codition = { money: '800/m^2' }
var options = { age: 18 }
room.updateMany(codition, options, function (err, res) {
if (err) {
console.log(err);
}
console.log(res);
})
}
update()
function update2() {
var codition = { money: '800/m^2' }
var options = { age: 18 }
room.update(codition, options,{multi: true} function (err, res) {
if (err) {
console.log(err);
}
console.log(res);
})
}
update2()
// 修改单个
// 修改
function update() {
var codition = { money: '800/m^2' }
var options = { age: 18 }
room.update(codition, options, function (err, res) {
if (err) {
console.log(err);
}
console.log(res);
})
}
// update()
function update2() {
room.findByIdAndUpdate('6152837a9752bb7cd7df2ad5', { age: 99 }, function (err, res) {
if (err) {
console.log(err);
}
console.log(res);
})
}
// update2()
删
// 删除
// 删除多个
function delete1() {
room.deleteMany({ name: '洗衣间' }, function (err, res) {
if (err) {
console.log(err);
}
console.log(res);
})
}
// delete1()
// 删除一个
function delete2() {
room.findByIdAndRemove('6152837a9752bb7cd7df2ad5', function (err, res) {
if (err) {
console.log(err);
}
console.log(res);
})
}
delete2()