文档
一、egg中使用第三方插件egg-mongo-native
1.安装
npm i egg-mongo-native --save
2.配置
// {app_root}/config/plugin.js
exports.mongo = {
enable: true,
package: 'egg-mongo-native',
};
// {app_root}/config/config.default.js
exports.mongo = {
client: {
host: '127.0.0.1',
port: '27017',
//数据库名
name:'eggcms',
user:'',
password:'',
options:{}
},
};
3.查询数据库中的 user
表
this.app.mongo.find('collectionName')
'use strict';
const Controller = require('egg').Controller;
class NewsController extends Controller {
async index() {
let result = await this.app.mongo.find('user')
console.log(result)
}
}
module.exports = NewsController;
3.1按条件查找
查找表中{‘name’:’lisi’}的数据
this.app.mongo.find('user',{query:{'name':'lisi'}})
4.增加数据
4.1 insertOne
this.app.mongo.insertOne(collectionName,{doc:data})
let data = {
name: "关羽",
age: 30
};
this.app.mongo.insertOne('user',{doc:data})
4.2 insertMany
this.app.mongo.insertMany(collectionName,{docs:data})
let data = [{name:"zhangfei",age:40},{name:"liubei",age:55}]
this.app.mongo.insertMany('user',{docs:data})
5. 修改findOneAndUpdate
await this.app.mongo.findOneAndUpdate('user',{
filter:{'name':"lisi"},
update:{
$set:{
name:"程超",
age:18
}
}
})
6.删除findOneAndDelete
await this.app.mongo.findOneAndDelete('user',{filter:{name:"关羽"}})
7.查找指定_id的数据
7.1 require(‘mongodb’).ObjectID;
const ObjectID = require('mongodb').ObjectID;
this.app.mongo.find('user',{query:{'_id':ObjectID('5ccfdbf06572c52d082728f0')}});
7.2extend/application.js
//给app扩展getObjectID方法
const ObjectID = require('mongodb').ObjectID;
module.exports = {
getObjectID(params){
return ObjectID(params)
}
}
//使用
await this.app.mongo.find('user',{query:{'_id':this.app.getObjectID('5ccfdbf06572c52d082728f0')}});