【发布时间】:2022-01-22 03:57:40
【问题描述】:
我正在搜索如何在 MongoDB 聚合中转换此代码。假设我有这项服务,它将计算即将开始比赛的每项运动中的比赛“夹具”的数量 我有两个模型 Fixture 表示游戏和 Sport 将成为运动,每个 Fixture 都有我们可以在聚合期间分组的运动 ID。 这是一个工作示例
export const countFixtures = async () => {
const sports = await Sports.find();
const countFixturesBySport = [];
for (let index = 0; index < sports.length; index++) {
const sport = sports[index];
const countFixtures = await Fixture.countDocuments({
Sport: sport._id,
StartDate: { $gt: new Date() },
});
countFixturesBySport.push({
sport: sport.Name,
sportId: sport._id,
fixturesCount: countFixtures,
});
}
return countFixturesBySport;
};
我从 mongoDB 中的这段代码开始:
await Sports.aggregate([
{
$lookup: {
from: 'fixture',
let: { fixture: '$fixture' },
pipeline: [
{
$match: { $expr: { $eq: ['$_id', '$$fixture'] } },
},{
$project:
{$addFields: {
sport:'Name',
sportId:'_id',
countFixture:''
}}
])
【问题讨论】:
-
如果您能提供样本数据集和相应的预期输出会很有帮助
-
总的来说,我在 github repo 中创建了文件:github.com/anasbenyaiche/data-set-example/tree/main
标签: node.js mongodb aggregate-functions