gpt4 book ai didi

javascript - 如果存在输入,则 MongoDB 匹配(聚合)

转载 作者:行者123 更新时间:2023-12-05 06:53:18 25 4
gpt4 key购买 nike

$match: {
date: { $gte: fromDate, $lte: toDate },
if (userId) {
user: userId
}
},

只有提交了 userId 时,我才尝试匹配用户。执行此操作的最佳方法是什么。

最佳答案

您可以使用 mongoose query builder , 根据您的条件管理聚合阶段,

// INITIALIZE
let p = YourSchemaModel.aggregate();
// DATE FILTER
p.match({ date: { $gte: fromDate, $lte: toDate } });
// USER ID FILTER
if (userId) p.match({ user: userId });
// RESULT
let result = await p.exec();

Aggregation will auto merge $match stages if both are together!


第二个选项:

let result = await YourSchemaModel.aggregate().match(
Object.assign(
{ date: { $gte: fromDate, $lte: toDate } },
userId ? { user: userId } : {}
)
).exec();

关于javascript - 如果存在输入,则 MongoDB 匹配(聚合),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65814069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com