Mongodb是一个基于分布式文件存储的数据库
数据库是按照数据结构来组织、存储和管理数据的应用程序。
主要作用就是管理数据,对数据进行增删改查
相比于纯文件,数据库管理数据具有如下特点:
1.速度更快
2.拓展性更强
3.安全性更强
2.核心概念
Mongodb中有三个重要概念
https://www.mongodb.com/try/download/community
千万不要选中服务端窗口的内容,选中会停止服务,可以敲回车取消选中
1.显示所有的数据库
show dbs
2.切换到指定的数据库,如果数据库不存在则会自动创建数据库
use 数据库名
3.显示当前所在数据库
db
4.删除当前数据库
use 库名
db.dropDatabase()
4.2集合命令
1.创建集合
db.createCollection('集合名称')
2.显示当前数据库中的所有集合
show collections
3.删除某个集合
db.集合名.drop()
4.重命名集合
db.集合名.renameCollection('new name')
1.插入文档
db.集合名.insert('文档对象')
2.查询文档
db.集合名.find(查询条件)
_id是mongodb自动生成的唯一编号,用来唯一标识文档
3.更新文档
db.集合名.update(查询条件,新的文档)
db.集合名.update({name:'张三'},{$set:{age:19}})
4.删除文档
db.集合名.remove(查询条件)
是一个对象文档模型库
方便使用代码操作mongodb数据库
// 安装mongoose
// 导入mongoose
const mongoose = require('mongoose');
// 连接mongodb服务 数据库的名称
mongoose.connect('mongodb://127.0.0.1:27017/abc')
/* 设置回调 */
mongoose.connection.on('open',() => {
console.log('连接成功');
}); // 设置连接成功的回调
mongoose.connection.on('error',() => {
console.log('连接失败');
}); //连接失败的回调
mongoose.connection.on('close',() => {
console.log('连接关闭');
}); //设置连接关闭的回调
// 关闭mongodb的连接
setTimeout(() => {
mongoose.disconnect();
},2000)
出现以下问题
throw new MongooseError('Model.create() no longer accepts a callback');
是由于mongoose版本太高,可以手动降级
npm i mongoose@6.8.0
// 安装mongoose
// 导入mongoose
const mongoose = require('mongoose');
// 连接mongodb服务 数据库的名称
mongoose.connect('mongodb://127.0.0.1:27017/abc')
/* 设置回调 */
mongoose.connection.once('open',() => {
// console.log('连接成功');
// 5.创建文档的结构对象
// 设置集合中文档的属性以及属性值的类型
let BookSchema = new mongoose.Schema({
name:String,
author: String,
price: Number
});
// 创建模型对象 对文档操作的封装对象
let BookModel = mongoose.model('books',BookSchema);
// 新增
BookModel.create({
name:'xiyouji',
author:'吴承恩',
price:19.9
},(err,data) => {
if(err){
console.log(err);
return;
}
// 如果没有出错,则输出插入后的文档对象
console.log(data);
// 关闭数据库连接(项目运行过程中不会添加此代码)
mongoose.disconnect();
});
}); // 设置连接成功的回调
mongoose.connection.on('error',() => {
console.log('连接失败');
}); //连接失败的回调
mongoose.connection.on('close',() => {
console.log('连接关闭');
}); //设置连接关闭的回调
文档结构可选的常用字段类型列表
// 安装mongoose
// 导入mongoose
const { Mixed } = require('mongoose');
const mongoose = require('mongoose');
// 连接mongodb服务 数据库的名称
mongoose.connect('mongodb://127.0.0.1:27017/abc')
/* 设置回调 */
mongoose.connection.once('open',() => {
// console.log('连接成功');
// 5.创建文档的结构对象
// 设置集合中文档的属性以及属性值的类型
let BookSchema = new mongoose.Schema({
name:String,
author: String,
price: Number,
is_hot:Boolean,
tags:Array,
pub_time:Date,
test:mongoose.Schema.Types.Mixed
});
// 创建模型对象 对文档操作的封装对象
let BookModel = mongoose.model('books',BookSchema);
// 新增
BookModel.create({
name:'xiyouji',
author:'吴承恩',
price:19.9,
is_hot:true,
tags:['鬼怪','励志'],
pub_time:new Date(),
test:'abc'
},(err,data) => {
if(err){
console.log(err);
return;
}
// 如果没有出错,则输出插入后的文档对象
console.log(data);
// 关闭数据库连接(项目运行过程中不会添加此代码)
mongoose.disconnect();
});
}); // 设置连接成功的回调
mongoose.connection.on('error',() => {
console.log('连接失败');
}); //连接失败的回调
mongoose.connection.on('close',() => {
console.log('连接关闭');
}); //设置连接关闭的回调
我们可以使用图形化的管理工具来对Mongodb进行交互,