$ regex不适用于整数值字段

时间:2018-01-26 05:39:06

标签: node.js mongodb mongoose

我尝试使用$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查询时返回空数组

0 个答案:

没有答案