function search(where, page_obj, next) {
var sort = { 'timestamp.create': 1 };
if (!where) {
where = {};
}
// var str=".*"+searchValue+".*$"
// var reg = new RegExp(str)
var reg_address = new RegExp('');
var reg_vm_name = new RegExp('');
var reg_asset = new RegExp('');
//多字段匹配
var _filter = { $or: [] };
if (where.address) {
reg_address = new RegExp(where.address);
_filter['$or'].push({
'address': { $regex: reg_address }
});
};
if (where.vm_name) {
reg_name = new RegExp(where.name);
_filter['$or'].push({
'name': { $regex: reg_name }
});
};
if (where.asset) {
reg_asset = new RegExp(where.asset);
_filter['$or'].push({
'asset': { $regex: reg_asset }
});
};
if (_filter['$or'].length == 0) {
_filter = {};
}
mongo.selectWhereGetCount(db_blist, _filter, (err, count) => {
if (err) throw err;
mongo.selectWhereOrderSkipLimit(db_studentlist,
_filter, {}, sort, page_obj.size, (page_obj.page - 1) * page_obj.size,
(err, result) => {
ret = {
'page': page_obj,
'total': count,
'rows': result
}
next(err, ret);
});
});
}
function selectWhereGetCount(collection, where, next) {
var dbo = db.db(db_name);
dbo.collection(collection).find(where).count(function(err, count) {
next(err, count);
});
}
function selectWhereOrderLimit(collection, where, fields, sort, limit, next) {
var dbo = db.db(db_name);
// sort = {'account_order':1};
// limit = 10;分页用
console.log(sort, limit);
dbo.collection(collection).find(where, fields).sort(sort).limit(limit).toArray((err, result) => { // 返回集合中所有数据
if (err) throw err;
next(err, result);
});
}