zoukankan      html  css  js  c++  java
  • Egg.js 中使用第三方插件以及 Egg.js 插件 egg-mongo-native 操作 mongodb 数据库

    一、Egg.js 中使用第三方插件

    Egg.js 是基于 nodejs,所以可以使用 nodejs 的所有模块,使用方式就是在用到的地方引入对应模块,然后按照文档使用。

    二、Egg.js 插件 egg-mongo-native 配置

    https://www.npmjs.com/package/egg-mongo-native

    使用方法:

    1. 安装

    npm i egg-mongo-native --save

    2、插件文件里面启用插件

    找到{app_root}/config/plugin.js exports.mongo = {
    enable: true,
    package: 'egg-mongo-native',
    };

    3config.default.js 中配置数据库

    // {app_root}/config/config.default.js 
    exports.mongo = {
        client: {
            host: 'host',
            port: 'port',
            name: 'test',
            user: 'user', password: 'password', options: {},
    }, };        

    三、Egg.js 插件 egg-mongo-native 使用

    1、查找

    var result=await this.app.mongo.find('order');
    var result=await this.app.mongo.find('cate',{query:{"name":zhangsan"});

    2、增加

    var result = await this.app.mongo.insertOne('cate', {doc:{"title":"我是分类"}});

    3、修改

    onst result = await this.app.mongo.findOneAndUpdate('cate', {
        filter:{"title":"我是分类"}, 
        update:{$set:{"title":"1111"}
    } });

    4、删除

    const result = await this.app.mongo.findOneAndDelete('cate', {filter:{"title":"1111"}})

    5、根据_id 查找数据

    1. 新建 app/extend/application.js

    var ObjectID = require('mongodb').ObjectID; module.exports = {
    getObjectId(param) {
    return ObjectID(param)
    } };

    2. 根据id查找数据

    var result=await this.app.mongo.find('cate',{ query:{"_id":this.app.getObjectId("5b714dcef30d64139d434358")}
    });
    const result = await this.app.mongo.aggregate('product',{
     pipeline:[
        {
            $lookup:
        {
            from: "orders", 
            localField: "_id",
             foreignField: "pid", 
            as: "list"
        } 
        },{
    
                $match:{  
                   "all_price":{$gte:90}
                }
            }    
        ] 
    })
                    

    表关联查询

    https://docs.mongodb.com/manual/reference/command/aggregate/

  • 相关阅读:
    centos 7 配置 keepalived,主机高可用
    centos 7 安装 nginx
    windows10 设置虚拟网卡/ip
    c#程序以管理员权限运行
    关于js中属性那些事
    centos 7 问题集锦
    几个Git仓库开源软件的比较
    grpc proto3 初体验
    windows下maven安装配置(本地仓库配置)
    navicat premium patch/keygen instruction
  • 原文地址:https://www.cnblogs.com/loaderman/p/11570654.html
Copyright © 2011-2022 走看看