随着查询的大小增大,我选择将查询移至要放入代码中的json文件中,换出需要更改的值以用于过滤条件,然后将解析后的JSON对象提供给聚合方法。尝试此操作时,我始终收到以下错误:“错误:聚合具有空管道”。
但是,如果我将生成的json作为字符串打印并复制并粘贴到Robo 3T中的聚合函数中,它将起作用。我正在通过以下方式从代码中调用聚合方法:Vehicle.aggregate(JSON.parse(queryObj));
,其中Vehicle是一个集合,queryObj包含从文件中提取的json。
当我在聚合方法中拥有用于查询的代码时,它就起作用了。
json文件的格式使用的是这种基本格式,尽管它要长得多:
[
{ $match: { status: "A" } },
{ $group: { _id: "$cust_id", total: { $sum: "$amount" } } }
]
是否可以将json对象(在这种情况下为数组)传递给聚合方法?如果是这样,需要进行哪些调整才能使其正常工作?