一、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/