指定されたcategoryとの一致を試みることができます およびcreatedAt -$matchを使用した日付 、次にグループ化し、最後に$addToSetを使用します すべての一意のstaffIdを取得します s:
db.collection.aggregate([
{
$match: {
"category": "trend",
"createdAt": {$gte: new Date("2020-08-13T00:00:00Z"), $lt: ISODate("2020-08-14T00:00:00Z")}
}
},
{
"$group": {
"_id": null,
"staffIds": {
"$addToSet": "$staffId"
}
}
}
]);
これがmongoplaygroundの例です(ISODateはそこでサポートされていないため、日付に文字列と正規表現を使用する必要がありました): https: //mongoplayground.net/p/oGM7cfvCRQx