一、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', };
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、修改
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/