我有一个像这样的猫鼬模式:
pip install matplotlib==1.5.1
现在我想查询所有在minCost和maxCost之间有totalCost的行程。有什么方法可以做到吗?我试过$ where但我无法将minCost,maxCost传递给函数。
答案 0 :(得分:2)
您无法查询Mongoose虚拟属性,因为它们仅存在于文档的Mongoose模型表示中,而不存在于应执行查询的MongoDB本身中。
但是,您可以运行计算总费用的汇总查询,然后使用 $match
管道查询文档。以下示例显示了此方法:
api.domain.com/user/1
答案 1 :(得分:1)
我认为$在哪里是唯一的方法,你可以实现这一目标但是$在哪里是昂贵的。
我不确定mongoose中有哪些选项可以使用$ where但是它会像下面那样
var minCost=1000;
var maxCost = 10000;
query.$where(function () {
var cost=0;
for(var i in this.expenses){cost+=this.expenses[i].cost}
if(cost>minCost && cost<maxCost){return true;}
})
以下是link
另一种方法是我们可以将javascript作为字符串传递给$ where子句
var minCost=1000;
var maxCost = 10000;
var func = 'var cost=0;for(var i in this.expenses{cost+=this.expenses[i].cost}if(cost>'+minCost+' && cost<'+maxCost+'){return true;}'
query.$where(func);