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