nodeJS——Mongoose基础操作

1. Mongoose

Mongoose 是一个基于 Node.jsODM(对象文档映射)库,它为 MongoDB 提供了一个结构化的解决方案来定义数据模型,并通过模式(Schema)验证数据。
相对于Mongo Shell (命令行工具)而言:
Mongoose简化开发流程,提供了许多高级功能,如预/后钩子(pre/post hooks)、虚拟字段(virtual fields)、中间件(middleware)等,可以简化应用程序的开发过程。
集成到应用逻辑中,由于它是作为 npm 包提供的,所以可以直接集成到Node.js应用程序中,使开发者能够在应用程序层面上处理 MongoDB 数据库操作。
对于Mongo Shell
Mongo Shell直接操作数据库,通过CMD启动MongoshMongo Shell 是一个交互式的 JavaScript 环境,允许你直接对 MongoDB 数据库执行命令。它非常适合用来进行数据库管理、测试查询语句以及执行各种数据库操作。对于初学者来说,使用Mongo Shell可以更直观地了解 MongoDB 的工作原理,包括数据模型设计还有查询优化等等。

1.1 Mongoose操作

// 1. 安装mongoose
// 2. 导入mongoose
const mongoose = require('mongoose');

// 3. 连接数据库服务
//      连接方法   协议名称   ip地址          要操作的数据库名称(后续操作的数据库)
mongoose.connect('mongodb://127.0.0.1:27017/bilbil');

// 4. 设置回调
// 成功回调
mongoose.connection.once('open', () => {
    console.log('连接成功');
})

// 错误回调
mongoose.connection.on('error', () => {
    console.log('连接失败');
})

// 关闭回调
mongoose.connection.on('close', () => {
    console.log('连接关闭');
})

1.1.1 新增

// 1. 安装mongoose
// 2. 导入mongoose
const mongoose = require('mongoose');

// 3. 连接数据库服务
//      连接方法   协议名称   ip地址          要操作的数据库名称(后续操作的数据库)
mongoose.connect('mongodb://127.0.0.1:27017/bilbil');

// 4. 设置回调
// 成功回调
mongoose.connection.once('open', () => {
    console.log('连接成功');
    // 5. 创建文档的结构对象
    // Schema可以理解是【模式】的意思,也就是创建一个文档对象,约束文档属性和属性值
    let BookSchema = new mongoose.Schema({
        name: String,
        author: String,
        price: Number,
        is_hot: Boolean,
        tags: Array,
        pub_time: Date,
        // Buffer Buffer对象
        // Mixed 可以理解成Any
        // ObjectId 联合查询使用,
        // Decimal128 高精度类型
    });

    // 6. 创建模型对象  模型对象:对文档操作的封装对象
    // BookModel可以对指定文档进行增删改查
    // model是一个方法 books是集合名称 BookSchem是结构对象
    let BookModel = mongoose.model('books', BookSchema);

    // 7. 新增
    // BookModel.create({
    //     name: '西游记',
    //     author: '吴承恩',
    //     price: 19.9
    // }, (err, data) => {
    //     // 形参1
    //     if (err) {
    //         console.log('报错', err);
    //         return;
    //     };
    //     // 形参2 
    //     // data 插入成功后的文档对象
    //     console.log(data);
    // });

    // 7.1 create的回调方法被弃用了
    BookModel.create({ name: '西游记', author: '吴承恩', price: 19.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值