加入收藏 | 设为首页 | 会员中心 | 我要投稿 南通站长网 (https://www.0513zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

Mongoose是什么?如何利用?

发布时间:2022-04-22 10:34:19 所属栏目:系统 来源:互联网
导读:Mongoose是什么?如何使用?对于刚接触MongoDB朋友来说,可能对用户Mongoose并不是很了解,这篇文章小编就给大家介绍一下Mongoose以及使用,感兴趣的朋友可以了解一下。 在egg项目中如何使用? 1、安装 npm i egg-mongoose --save 2、配置 在根目录下的/conf
        Mongoose是什么?如何使用?对于刚接触MongoDB朋友来说,可能对用户Mongoose并不是很了解,这篇文章小编就给大家介绍一下Mongoose以及使用,感兴趣的朋友可以了解一下。
 
        在egg项目中如何使用?
 
        1、安装
 
npm i egg-mongoose --save
 
        2、配置
 
        在根目录下的/config/plugin.js中配置插件
 
exports.mongoose = {
 enable: true,
 package: 'egg-mongoose',
};
        3、连接数据库
 
        在根目录下的/config/config.default.js增加配置,其中url为我们的数据库地址,可通过环境变量来区分开发环境还是生产环境,并且确定是否使用用户名密码的数据库
const prod = process.env.npm_config_server_prod;
 
mongoose: {
 client: {
 url: prod ? 'mongodb:eggadmin:123456@localhost:27017/DbName' : 'mongodb://127.0.0.1:27017/DbName',
 options: {
 useUnifiedTopology: true,
 },
 },
 },
        4、配置与使用
 
        (1)数据表配置
 
        在app目录下新建model文件夹,在model文件夹下新建JS文件作为数据表的配置内容,下面以书籍表的配置为例
 
'use strict';
 
/**
 * @description: Mongoose book Schema,
 */
 
module.exports = app => {
 const mongoose = app.mongoose;
 const Schema = mongoose.Schema;
 const BookSchema = new Schema({
 desc: { type: String }, /* 书籍描述 */
 name: { type: String }, /* 书籍名称 */
 press: { type: String }, /* 出版社 */
 author: { type: String }, /* 作者 */
 image: { type: Array }, /* 书籍图片列表*/
 price: { type: String }, /* 价格 */
 book_type: { /* 书籍分类id */
 type: Schema.Types.ObjectId,
 ref: 'BookClassify',
 },
 user: { /* 书籍发布者id */
 type: Schema.Types.ObjectId,
 ref: 'User',
 },
 create_time: { type: String }, /* 创建时间 */
 status: { type: String }, /* 状态,1:待购买,2:已购买*/
 look: { type: Number } /* 浏览数量 */
 });
 return mongoose.model('Book', BookSchema);
};
        可以看到我们可以通过Schema来定义表结构,可以指定字段的类型及关联,设置完字段后就可以生成model了,这里算是非常简单的配置,更多配置方法可参考文档
 
        (2)、使用mongoose方法
 
        配置完数据表结构后,我们就可以再service层中调用mongoose的方法对文档进行增删查改了,已书籍列表的处理逻辑为例子
 
async findbookList(data) {
 const { type, page, pageSize, desc, status, userId } = data;
 const searchVal = {}
 if (type) {

(编辑:南通站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读