在MongoDb find()方法上使用个性化运算符

时间:2015-04-09 05:34:51

标签: mongodb meteor mongodb-query

我遇到了查询结果问题,我希望比较字段的值,乘以及与其他系统值进行比较。

就像这样:

var servicePriceProportion = 0.7;
var serviceMaxPrice = 1000;

        CollectionX.find({
        ... other conditions,
        $where: function(){
            return (this.Data.investmentMax * servicePriceProportion < serviceMaxPrice);
        }
        });

我也试过了。但是没有用:

 $where: function(){
                return (this.Data.investmentMax != this.Data.investmentMax);

}

$ where where条件根本不起作用。

1 个答案:

答案 0 :(得分:0)

如果您在$where中使用javascript变量,则应使用obj关键字引用它们。

$where: "this.Data.investmentMax * " + servicePriceProportion + " < " + serviceProviderMaxPrice"

所以this引用集合中的实际数据,而obj则引用另一个变量。

你应该知道使用$ where运算符可以使查询相当慢。

来自docs的说明。

  

一般情况下,只有当你无法表达你的时候才应该使用$   使用其他运算符进行查询

所以在简历中,如果有一些方法可以在不使用$where的情况下完成此任务,那么应用程序将会很好用