node.js查询语句封装
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node.js查询语句封装相关的知识,希望对你有一定的参考价值。
/**
* Created by Administrator on 2017/3/3 0003.
*/
var Mongo=require(‘mongodb‘);
var Config=require("./config.js").config;
var MongoClient=Mongo.MongoClient;
var ObjectID=Mongo.ObjectID;
/*连接数据库*/
function _connectDB(callback){
//MongoClient.connect(Config.DbUrl,function(err,db){
// if (err) {
// console.log(‘数据库连接失败...‘);
// callback(err, null);
// return;
// }
// callback(err, db);
//})
MongoClient.connect(Config.DbUrl,function(err,db){
if (err) {
console.log(‘数据库连接失败...‘);
callback(err, null);
return;
}
callback(err, db);
})
}
//用于获取id
exports.ObjectID=ObjectID;
exports.count=function(collectionName,json,callback){
_connectDB(function(err,db){
db.collection(collectionName).count(json, function (err, result) {
callback(err, result);
db.close(); //关闭数据库
})
})
}
/*插入数据*/
exports.insertOne=function(collectionName,json,callback){
_connectDB(function(err,db){
db.collection(collectionName).insertOne(json, function (err, result) {
callback(err, result);
db.close(); //关闭数据库
})
})
}
/*更新数据*/
//修改一条
exports.updateOne = function (collectionName, json1, json2, callback) {
_connectDB(function (err, db) {
db.collection(collectionName).updateOne(
json1,
json2,
function (err, results) {
callback(err, results);
db.close();//关闭数据库
});
})
}
//修改全部
exports.updateMany=function (collectionName, json1, json2, callback) {
_connectDB(function (err, db) {
db.collection(collectionName).updateMany(
json1,
json2,
function (err, results) {
callback(err, results);
db.close();//关闭数据库
});
})
}
// 查找
//要求最少传4个参数
//db.find(‘表名‘,{},{},function(){
//
//})
//collectionName表名
//json1查询条件
//json2返回的列
//c 配置 回调
//D回调
exports.find=function (collectionName, json1,json2, C, D) {
if (arguments.length<4) {
console.log(‘ 传入参数不对‘);
return false;
}
var result = []; //结果数组
if (arguments.length == 4) {
//那么参数C就是callback,参数D没有传。
var callback = C;
var skipnumber = 0;
//数目限制
var limit = 0;
} else if (arguments.length == 5) {
var callback = D;
var args = C; /*配置*/
//应该省略的条数 1
var skipnumber = args.pageSize * (args.page-1) || 0;
// //page=1第一页:skip(0)
//page=2 第一页:skip(2)
//page=3 第一页:skip(4)
//page=4 第一页:skip(6)
//数目限制
var limit = args.pageSize || 20;
//排序方式
var sort = args.sort || {};
} else {
throw new Error("find函数的参数个数,必须是3个,或者4个。");
return;
}
_connectDB(function(err,db){
if(err){ /*数据库连接失败*/
console.log(‘数据库连接失败‘);
return;
}
//var userRel=db.collection(collectionName).find(json);
var userRel=db.collection(collectionName).find(json1,json2).skip(skipnumber).limit(limit).sort(sort);;
userRel.each(function(err, doc) {
if(err){
res.write("游标遍历错误");
return;
}
if (doc != null) {
result.push(doc);
} else {
//console.log(result);
//遍历完毕
db.close();
callback(err,result)
}
});
})
}
//
//// 查找
//exports.find=function (collectionName, json, C, D) {
//
//
//
// var result = []; //结果数组
// if (arguments.length == 3) {
// //那么参数C就是callback,参数D没有传。
// var callback = C;
// var skipnumber = 0;
// //数目限制
// var limit = 0;
// } else if (arguments.length == 4) {
// var callback = D;
// var args = C; /*配置*/
// //应该省略的条数 1
// var skipnumber = args.pageSize * (args.page-1) || 0;
//
// // //page=1第一页:skip(0)
// //page=2 第一页:skip(2)
// //page=3 第一页:skip(4)
// //page=4 第一页:skip(6)
//
// //数目限制
// var limit = args.pageSize || 20;
// //排序方式
// var sort = args.sort || {};
// } else {
// throw new Error("find函数的参数个数,必须是3个,或者4个。");
// return;
// }
//
//
// _connectDB(function(err,db){
//
//
// if(err){ /*数据库连接失败*/
//
// console.log(‘数据库连接失败‘);
// return;
// }
//
//
// //var userRel=db.collection(collectionName).find(json);
// var userRel=db.collection(collectionName).find(json).skip(skipnumber).limit(limit).sort(sort);;
//
//
// userRel.each(function(err, doc) {
//
// if(err){
// res.write("游标遍历错误");
// return;
// }
// if (doc != null) {
// result.push(doc);
// } else {
// //console.log(result);
// //遍历完毕
// db.close();
// callback(err,result)
// }
// });
//
// })
//
//
//
//
//}
//删除
exports.deleteMany = function (collectionName, json, callback) {
_connectDB(function (err, db) {
//删除
db.collection(collectionName).deleteMany(
json,
function (err, results) {
callback(err, results);
db.close(); //关闭数据库
}
);
});
}
以上是关于node.js查询语句封装的主要内容,如果未能解决你的问题,请参考以下文章
使用 postgres 和 node js 在单个语句中执行多个查询
带有承诺的 MongoDB 查询不执行 if 语句(MongoDB node.js 驱动程序)