我尝试使用$regex
使用mongoose搜索数据,但不使用Number字段。
这是我的model.js
var transactionsSchema = new Schema({
user : Schema.Types.ObjectId,
amount : {type : Number}
});
这是我的查询
var condition = {
user:user,
amount:{ $regex: search}
};
Model.find(condition)..exec(function(err,res){
console.log(res);
});
我收到以下错误
Can't use $regex with Number.
然后尝试了以下
var condition = {
user:user,
amount:{ "$where": "function() { return this.amount.toString().match(/"+search+"/) != null; }" }
};
Model.find(condition)..exec(function(err,res){
console.log(res);
});
以下给出
Error: Can't use $where with Number.
现在我改变了我的条件
var condition = {
user:user
}
condition["$where"] = "function() { return this.amount.toString().match(/"+search+"/) != null; }";
Model.find(condition)..exec(function(err,res){
console.log(res); //output []
});
它在mongo
shell中工作且结果准确,但在mongoose
查询时返回空数组