123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- /**
- * mongodb Helper
- *
- * @author caiaolin
- * @date 2017/5/22.
- */
- class MongooseHelper {
- /**
- * mongoose数据模型
- *
- * @var {object}
- */
- model = null;
- /**
- * 查找单一数据
- *
- * @param {object} conditions
- * @param {object} fields
- * @return {Promise}
- */
- findOne(conditions, fields = null) {
- let self = this;
- return new Promise(function (resolve, reject) {
- self.model.findOne(conditions, fields, function (error, data) {
- if (error) {
- reject(null);
- } else {
- resolve(data);
- }
- });
- });
- }
- /**
- * 查找数据
- *
- * @param {object} conditions
- * @param {object} fields
- * @return {Promise}
- */
- find(conditions, fields = null) {
- let self = this;
- return new Promise(function (resolve, reject) {
- self.model.find(conditions, fields, function (error, data) {
- if (error) {
- reject(error);
- } else {
- resolve(data);
- }
- });
- });
- }
- /**
- * 查找且更新(原子操作)
- *
- * @param {object} update
- * @param {object} condition
- * @param {object} options
- * @return {Promise}
- */
- findAndModify(condition, update, options) {
- let self = this;
- return new Promise(function (resolve, reject) {
- self.model.findOneAndUpdate(condition, update, options, function(error, data) {
- if (error) {
- reject(null);
- } else {
- resolve(data);
- }
- });
- });
- }
- /**
- * 新增操作
- *
- * @param {object} data
- * @return {Promise}
- */
- create(data) {
- let self = this;
- return new Promise(function (resolve, reject) {
- self.model.create(data, function(error, data) {
- if (error) {
- reject(error);
- } else {
- resolve(data);
- }
- });
- });
- }
- /**
- * 更新操作
- *
- * @param {object} condition
- * @param {object} updateData
- * @return {Promise}
- */
- update(condition, updateData) {
- let self = this;
- return new Promise(function (resolve, reject) {
- let validate = new self.model(updateData);
- let validateError = validate.validateSync();
- if (validateError) {
- reject(validateError);
- }
- self.model.update(condition, {$set: updateData}, function(error, result) {
- if (error) {
- reject(error);
- } else {
- resolve(result);
- }
- });
- });
- }
- }
- module.exports = MongooseHelper;
|