Egg.js 中使用第三方插件
- Egg.js 是基于 nodejs,所以可以使用 nodejs 的所有模块,使用方式就是在用到的地方引入对应模块,然后按照文档使用
Egg.js 插件 egg-mongo-native 配置
- API文档: 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'
};
3 ) config.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 ) 修改
const 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 查找数据
新建 app/extend/application.js
// 为了方便,不用每次require
var ObjectID = require('mongodb').ObjectID;
module.exports = {
getObjectId(param) {
return ObjectID(param)
}
};
根据 id 查找数据
var result=await this.app.mongo.find('cate',{
query:{"_id":this.app.getObjectId("5b714dcef30d64139d434358")}
});
6 ) 聚合管道查询数据
const result = await this.app.mongo.aggregate('order', {
pipeline: [
{
$lookup:
{
from: 'order_item',
localField: 'order_id',
foreignField: 'order_id',
as: 'items',
},
},
{
$match: { all_price: { $gte: 90 } },
},
{
$limit: 2,
},
],
options: {},
});
this.ctx.body = result;