我正在使用Restheart和MongoDB以及其中的新功能,我必须在MongoDb中编写聚合。我在mongoDb中使用$ match编写聚合。
此示例代码:
{
"aggrs": [{
"type": "pipeline",
"uri": "aggregation_by_time",
"stages": [{
"_$match": {
"bus::destination": {
"_$in": {
"_$var": "stand"
}
},
"bus::eta": {
"_$gte": {
"_$var": "fromDate"
},
"_$lte": {
"_$var": "toDate"
}
},
"tickets": {
"_$eq": {
"_$var": "isConfirmedTravel"
}
}
}
}]
}]
}
此处访问网址示例
http://..xyz../_aggrs/aggregation_by_time?avars={"stand":["A","B","C","D","E","F"]}
当我访问此网址时,它无效,显示一些错误。
错误:
{“http状态代码”:400,“http状态说明”:“不好 请求“,”消息“:”执行aggreation管道的错误:变量 isConfirmedTravel没有绑定“}
当我访问下面的网址时,它会起作用。
http://..xyz../_aggrs/aggregation_by_time?avars={"stand":["A","B","C","D","E","F"],"isConfirmedTravel":"true"}
所以我想制作可选的$ match,就好像我在url中没有提到parmater“isConfirmedTravel”那样它应该可行。如果我想在url中发送参数“isConfirmedTravel”那么它也应该工作。但在我的情况下如果把字段放在$ match中那么你应该在url中提及。这就是为什么我要设置可选的“isConfirmedTravel”:“true”字段。如果我打电话,它应该工作,如果我不打电话,那么url应该工作。