node学习篇——mongodb增删改查操作
2017-05-29 10:46
489 查看
题外话:
前段时间里,通过传智博客的学习。对于mongodb的了解算是入门了。在这篇文章里,我进行的并不是对mongodb的语法概括,而是对mongodb的增删改查进行一系列的封装、总结。
正文:
在一个项目中,创建一个models文件夹并定义一个DAO层进行增删改查的封装。
总共通过6个步骤进行设计配置。
(进行数据库操作的都有mongodb官方文档进行参考,http://mongodb.github.io/node-mongodb-native/2.2/api/)
1. 连接数据库。默认端口为27017。将数据库连接进行封装以便为接下来的一系列数据库操作调用。
var MongoClient = require('mongodb').MongoClient;
function _connectionDB(callback) { var url = 'mongodb://127.0.0.1:27017/mongos'; MongoClient.connect(url, function(err, db) { if (err){ callback("连接失败"); return } // console.log("连接成功"); callback(err,db);
});
}
2.插入文档。向外暴露插入函数,并进行callback回调进行数据库操作。
exports.insertOne=function (collectionName, json, callback) { _connectionDB(function (err, db) { db.collection(collectionName).insertOne(json,function (err,result) { callback(err,result); db.close();
}; })
})
3.查询文档。查是处理逻辑比较多的一个操作,find函数中,实用skip与limit进行限制条数查询,通过sort进行排序查询。可以实现分页、排序等功能。
exports.find=function (collectionName, json,args, callback) { var result=[]; var skipNumber=args.pageamount*args.page||0; var page=parseInt(args.pageamount)||0; var sort=args.sort||0; _connectionDB(function (err, db) { var collection = db.collection(collectionName).find(json).skip(skipNumber).limit(page).sort(sort); collection.each(function(err, docs) { if (err){ callback("查询失败",null); return } if (docs!=null){ result.push(docs); }else{ callback(null,result); db.close(); }
});
}; })
4.删除文档。向外暴露一个函数,并传入一个json形式的数据进行数据库删除。
exports.deleteOne=function (collectionName, json, callback) { _connectionDB(function (err, db) { var collection = db.collection(collectionName); collection.deleteMany(json,function(err, result) { if (err){ callback(err,null); return } callback(null,result); db.close(); });
})
};
5.修改文档。使用$set修改器进行数据库的修改。同样需要向外暴露函数。
exports.update=function (collectionName, json1,json2, callback) { _connectionDB(function (err, db) { var collection = db.collection(collectionName); collection.updateOne(json1 , { $set: json2}, function(err, result) { callback(null,result); db.close(); });
})
};
6.查看文档的总条数。
exports.getAllCount=function (collectionName, callback) { _connectionDB(function (err, db) { db.collection(collectionName).count({}).then(function(count) { callback(count); db.close();
}; });
})
至此,增删改查的操作便完成了。
项目开发过程中,效率永远是排在第一位。贯穿于整个项目中无非便是增删改查,将其封装起来可以大大提高开发效率。
前段时间里,通过传智博客的学习。对于mongodb的了解算是入门了。在这篇文章里,我进行的并不是对mongodb的语法概括,而是对mongodb的增删改查进行一系列的封装、总结。
正文:
在一个项目中,创建一个models文件夹并定义一个DAO层进行增删改查的封装。
总共通过6个步骤进行设计配置。
(进行数据库操作的都有mongodb官方文档进行参考,http://mongodb.github.io/node-mongodb-native/2.2/api/)
1. 连接数据库。默认端口为27017。将数据库连接进行封装以便为接下来的一系列数据库操作调用。
var MongoClient = require('mongodb').MongoClient;
function _connectionDB(callback) { var url = 'mongodb://127.0.0.1:27017/mongos'; MongoClient.connect(url, function(err, db) { if (err){ callback("连接失败"); return } // console.log("连接成功"); callback(err,db);
});
}
2.插入文档。向外暴露插入函数,并进行callback回调进行数据库操作。
exports.insertOne=function (collectionName, json, callback) { _connectionDB(function (err, db) { db.collection(collectionName).insertOne(json,function (err,result) { callback(err,result); db.close();
}; })
})
3.查询文档。查是处理逻辑比较多的一个操作,find函数中,实用skip与limit进行限制条数查询,通过sort进行排序查询。可以实现分页、排序等功能。
exports.find=function (collectionName, json,args, callback) { var result=[]; var skipNumber=args.pageamount*args.page||0; var page=parseInt(args.pageamount)||0; var sort=args.sort||0; _connectionDB(function (err, db) { var collection = db.collection(collectionName).find(json).skip(skipNumber).limit(page).sort(sort); collection.each(function(err, docs) { if (err){ callback("查询失败",null); return } if (docs!=null){ result.push(docs); }else{ callback(null,result); db.close(); }
});
}; })
4.删除文档。向外暴露一个函数,并传入一个json形式的数据进行数据库删除。
exports.deleteOne=function (collectionName, json, callback) { _connectionDB(function (err, db) { var collection = db.collection(collectionName); collection.deleteMany(json,function(err, result) { if (err){ callback(err,null); return } callback(null,result); db.close(); });
})
};
5.修改文档。使用$set修改器进行数据库的修改。同样需要向外暴露函数。
exports.update=function (collectionName, json1,json2, callback) { _connectionDB(function (err, db) { var collection = db.collection(collectionName); collection.updateOne(json1 , { $set: json2}, function(err, result) { callback(null,result); db.close(); });
})
};
6.查看文档的总条数。
exports.getAllCount=function (collectionName, callback) { _connectionDB(function (err, db) { db.collection(collectionName).count({}).then(function(count) { callback(count); db.close();
}; });
})
至此,增删改查的操作便完成了。
项目开发过程中,效率永远是排在第一位。贯穿于整个项目中无非便是增删改查,将其封装起来可以大大提高开发效率。
相关文章推荐
- node.js操作mongodb学习小结
- node 学习(10) -- Nodejs 操作 MongoDb 数据库
- 基于mongodb+node express的增删查改(CRUD)操作
- 在Node中基于Mongoose对MongoDB进行增删查改(CRUD)操作(一)
- [置顶] MongoDB3.2增删查改方法简述(CRUD操作)
- PHP7操作MongoDB增删改查
- MongoDB——Java操作(增删改查)
- node.js对mongodb的连接&增删改查(附async同步流程控制)
- MongoDB学习笔记番外篇:JDBC方式操作MongoDB示例
- MongoDB的增删查改基本操作
- MongoDB 环境配置和基本操作-----专属学习笔记
- Mongodb基本操作入门,增删改查和索引
- Hbase学习笔记:使用单步调试考察hbase的增删查改操作
- MongoDB 学习 第三节 高级操作
- MongoDB学习—(3)shell的基本操作
- Hibernate学习-06:CRUD(增删改查)操作之删除记录
- Stey by Step——MongoDB学习(三)基本操作
- MongoDB入门教程之细说MongoDB数据库的增删查改操作
- 学习Node.js+MongoDB+AngularJS(1)
- MONGOOSE – 让NODE.JS高效操作MONGODB(转载)