这个想法是在一个请求(在JS中)获取文件,如果定义了数组,则获取包含在给定数组中的字段,或者如果未定义数组,则获取所有文档。
我只是想知道是否有任何优雅的意思为$ in参数赋予一个使其行为无效的参数,可以用作单行。我知道你必须让这种条件请求更优雅。
以下是使用Mongoose的代码段:
let query = SomeModel.find();
if (someArray) {
query = query.where(someField).in(someArray);
}
query.exec();
确实有效,但需要将查询存储在变量中,所以不要太酷。
答案 0 :(得分:0)
聚合可能有所帮助。
let itemValues = someArray || [];
SomeModel.aggregate([
{
$match: {
"someField": {
[itemValues.length > 0 ? "$in" : "$nin"]: itemValues}
}
}
]).exec()