mongoosedao = mongoose data access object
npm install --save mongoosedao
require('./db');
var User = require('./User');
User.create({"username":"sss","password":"password"},function(err, user){
console.log(user);
});
User.delete({"username":"sss","password":"password"},function(err, user){
console.log(user);
});
User.model is a mongoose model. You can do all as mongoose model。
more features
- statics
- methods
- pre or post hook
- aggregation
比如直接扩展方法
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var Promise = require('bluebird');
var User = require('../app/models/user');
User.schema.statics.find_by_openid = function(openid, cb) {
console.log('find_by_openid...')
};
// 此处必须要重置一下model
User = mongoose.model('User', User.schema);
var MongooseDao = require('mongoosedao');
var UserDao = new MongooseDao(Test);
UserDao.model.find_by_openid({}, function(err,docs){
// console.dir(docs);
process.exit();
});
当然我们更推荐的是在model定义上直接加
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
UserSchema = new Schema({
username: {
type: String,
required: true,
index: {
unique: true
}
},
password: {
type: String,
required: true
},
avatar: String,
address: String,
created_at: {
type: Date,
"default": Date.now
}
});
UserSchema.methods.find_by_name = function(cb) {
return this.model('UserModel').find({
username: this.username
}, cb);
};
UserSchema.methods.is_exist = function(cb) {
var query;
query = {
username: this.username,
password: this.password
};
return this.model('UserModel').findOne(query, cb);
};
UserSchema.statics.delete_by_name = function(name, cb_succ, cb_fail) {};
var UserModel = mongoose.model('UserModel', UserSchema);
var MongooseDao = require('../../');
var MeetingDao = new MongooseDao(UserModel);
module.exports = MeetingDao;
只要mongoose支持的,使用mongoosedao都可以完成,甚至更好
Test status
- create
- delete = remove
- deleteAll = removeAll
- deleteById = removeById
- getById
- all = getAll = find({})
- query = getByQuery = find
- one = findOne
- update
- updateOne
- updateById
- pageByLastId
- top(num) && first(num) = n(num) = latest(num)
- count(cb) &* count({},cb)
more see api doc
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
- v1.0.8 add mocha test && api.md
- v1.0.5 add query with condition
- v1.0.4 create with saved_doc return;
- v1.0.3 add updateById
- v1.0.2 add deleteById
- v1.0.0 初始化版本
- write by
i5ting
[email protected]
如有建议或意见,请在issue提问或邮件
this repo is released under the MIT License.