文档

一、egg中使用第三方插件egg-mongo-native

1.安装

  1. npm i egg-mongo-native --save

2.配置

  1. // {app_root}/config/plugin.js
  2. exports.mongo = {
  3. enable: true,
  4. package: 'egg-mongo-native',
  5. };
  1. // {app_root}/config/config.default.js
  2. exports.mongo = {
  3. client: {
  4. host: '127.0.0.1',
  5. port: '27017',
  6. //数据库名
  7. name:'eggcms',
  8. user:'',
  9. password:'',
  10. options:{}
  11. },
  12. };

3.查询数据库中的 user

  1. this.app.mongo.find('collectionName')
  1. 'use strict';
  2. const Controller = require('egg').Controller;
  3. class NewsController extends Controller {
  4. async index() {
  5. let result = await this.app.mongo.find('user')
  6. console.log(result)
  7. }
  8. }
  9. module.exports = NewsController;

3.1按条件查找

查找表中{‘name’:’lisi’}的数据

  1. this.app.mongo.find('user',{query:{'name':'lisi'}})

4.增加数据

4.1 insertOne

  1. this.app.mongo.insertOne(collectionName,{doc:data})
  1. let data = {
  2. name: "关羽",
  3. age: 30
  4. };
  5. this.app.mongo.insertOne('user',{doc:data})

4.2 insertMany

  1. this.app.mongo.insertMany(collectionName,{docs:data})
  1. let data = [{name:"zhangfei",age:40},{name:"liubei",age:55}]
  2. this.app.mongo.insertMany('user',{docs:data})

5. 修改findOneAndUpdate

  1. await this.app.mongo.findOneAndUpdate('user',{
  2. filter:{'name':"lisi"},
  3. update:{
  4. $set:{
  5. name:"程超",
  6. age:18
  7. }
  8. }
  9. })

6.删除findOneAndDelete

  1. await this.app.mongo.findOneAndDelete('user',{filter:{name:"关羽"}})

7.查找指定_id的数据

7.1 require(‘mongodb’).ObjectID;

  1. const ObjectID = require('mongodb').ObjectID;
  2. this.app.mongo.find('user',{query:{'_id':ObjectID('5ccfdbf06572c52d082728f0')}});

7.2extend/application.js

  1. //给app扩展getObjectID方法
  2. const ObjectID = require('mongodb').ObjectID;
  3. module.exports = {
  4. getObjectID(params){
  5. return ObjectID(params)
  6. }
  7. }
  1. //使用
  2. await this.app.mongo.find('user',{query:{'_id':this.app.getObjectID('5ccfdbf06572c52d082728f0')}});