Skip to content

Commit

Permalink
update query
Browse files Browse the repository at this point in the history
  • Loading branch information
zhangdong committed May 4, 2014
1 parent 7e5e1ba commit b0b83ab
Showing 1 changed file with 34 additions and 21 deletions.
55 changes: 34 additions & 21 deletions lib/controllers/ModelController.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,29 +89,42 @@ module.exports = function(app, name){
var model = app.getModel.call(app,getSelf()._model);
var queryConditions = {};
if(req.query.query){
queryConditions['$or'] = [];
for(var field in model.schema.paths){
if(model.schema.paths[field].instance!='ObjectID'){
var fieldCond = {};
// fieldCond[field]={ $regex: req.query.query, $options: 'i' } ;
if(field.indexOf('__')==0) continue;
if(field.indexOf('_metadata')==0)continue;
if(field.indexOf('_approval')==0)continue;
var fieldObj = model.schema.paths[field];
if(typeof fieldObj.options=='undefined') fieldObj.options = {type:null};
switch(fieldObj.options.type){
case "Date":
case "Number":
//fieldCond[field] = req.query.query;
break;
default:
if(!(fieldObj.options.type instanceof Array)){
fieldCond[field] = new RegExp(req.query.query,"i");
queryConditions['$or'].push ( fieldCond );
}
break;
if(req.query.query.split(":").length > 1)
{
var queryArr = req.query.query.split(" ");
for(var i in queryArr){
var query = queryArr[i].split(":");
if(query.length == 2){
queryConditions[query[0]] = new RegExp(query[1],"i");
}
}
}
else
{
queryConditions['$or'] = [];
for(var field in model.schema.paths){
if(model.schema.paths[field].instance!='ObjectID'){
var fieldCond = {};
// fieldCond[field]={ $regex: req.query.query, $options: 'i' } ;
if(field.indexOf('__')==0) continue;
if(field.indexOf('_metadata')==0)continue;
if(field.indexOf('_approval')==0)continue;
var fieldObj = model.schema.paths[field];
if(typeof fieldObj.options=='undefined') fieldObj.options = {type:null};
switch(fieldObj.options.type){
case "Date":
case "Number":
//fieldCond[field] = req.query.query;
break;
default:
if(!(fieldObj.options.type instanceof Array)){
fieldCond[field] = new RegExp(req.query.query,"i");
queryConditions['$or'].push ( fieldCond );
}
break;
}

}
}
}
}
Expand Down

0 comments on commit b0b83ab

Please sign in to comment.