文章目录
- 一 、什么是 MongoDB?
- 二、小Demo
- 三、Demo 增删改查
-
- 3.1 新增
- 3.2 查询
-
- 3.2.1 查询所有 [{},{}] 找不到返回 []
- 3.2.2 按条件查询 [{}] 即使只有一条数据也会放到一个数组当中
- 3.2.3 返回找到的第一个元素
- 3.3 删除数据 有多少个删除多少个
- 3.4 更新数据
-
- 3.4.1 User.findByIdAndUpdate() 根据id来更新
一 、什么是 MongoDB?
二、小Demo
提示需要先在官网下载,安装。
MongoDB官网下载
然后配置环境变量
之后如果能看到版本信息就没问题了。
mongod --version
const mongoose = require('mongoose');
// 连接数据库
mongoose.connect('mongodb://localhost:27017/test', { useNewUrlParser: true, useUnifiedTopology: true });
// 创建一个模型
// 就是在设计数据库
// MongoDB是动态的,非常灵活,只需要在代码中设计你的数据库就可以了
// mongoose 这个包就可以让你的设计编写过程变得非常的简单
// 模型名称在 mongoose中实际上是 小写复数 carts
const Cat = mongoose.model('Cat', { name: String });
for (let i = 0; i < 101; i++) {
// 实例化一个 Cat
const kitty = new Cat({ name: '我是' + i});
// 持久化保存 kitty实例
kitty.save().then(() => console.log('meow'));
}
效果:
三、Demo 增删改查
先创建一个基本的实例
const mongoose = require('mongoose')
// 1. 连接数据库 连接本机的are数据库
// 如果没有该数据库 则会自动创建,不过不是立马创建,而是当你插入第一条数据的时候创建
mongoose.connect('mongodb://localhost/are')
// 2. 设计文档结构(表结构) Schema理解为架构 结构
// 字段名称就是表结构中的属性名称
// 约束的目的是保持数据的完整性 统一性
const userSchema = new mongoose.Schema({
username: {
type: String,
require: true,//必须有
},
password: {
type: String,
require: true
},
email: {
type: String
}
});
// 3. 将文档架构发布为模型
// mongoose.model 方法就是将一个架构发布为 model
// 第一参数:传入一个 大写名词单数字符串用 来表示数据库名称 User
// mongoose会自动将大写名称的字符串生成 小写复数 的集合名称 users
// 第二个参数: 架构 Schema
// 返回值:模型构造函数
const User = mongoose.model('User', userSchema);
// 4.当我们有了模型构造函数,就可以对 User 集合中的数据为所欲为了
有关增删改查的相关API
MongoDB API
3.1 新增
const admin = new User({
username: 'zs',
password: '123456',
email: 'admin@admin.com'
})
// 持久化保存起来 返回值是刚刚插入的数据
admin.save().then(value => {
console.log("存储成功:",value);
}, reason => {
console.log('存储失败:',reason);
})
3.2 查询
3.2.1 查询所有 [{},{}] 找不到返回 []
User.find().then(value => {
console.log('查询结果:', value);
}, reason => {
console.log('查询失败:', reason);
})
3.2.2 按条件查询 [{}] 即使只有一条数据也会放到一个数组当中
找不到返回 []
User.find({
username: 'zs2134'
}).then(value => {
console.log('查询结果:', value);
}, reason => {
console.log('查询失败:', reason);
})
3.2.3 返回找到的第一个元素
返回值:对象 {} 只返回查询到的第一个数据
找不到返回 null
User.findOne({
username: 'zs',
password: '2'
}).then(value => {
console.log('查询结果:', value);
}, reason => {
console.log('查询失败:', reason);
})
3.3 删除数据 有多少个删除多少个
返回值 { n: 3, ok: 1, deletedCount: 3 }
User.remove({
username: 'admin'
}).then(result => {
console.log('删除成功', result);
}, err => {
console.log('删除失败', err);
})
3.4 更新数据
3.4.1 User.findByIdAndUpdate() 根据id来更新
new: true
表示返回的是更新后的数据,不写返回的是更新之前的数据
User.findByIdAndUpdate('5fd0756d944530385829b677', {
password: '000'
}, { new: true }).then(result => {
console.log('更新成功', result);
}, err => {
console.log('更新失败', err);
})
本文地址:https://blog.csdn.net/weixin_43742708/article/details/110927023