MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongoose Datumsvergleich ohne Zeit und Gruppierung nach mehreren Eigenschaften?

Sie können versuchen, die angegebene category abzugleichen und createdAt -date mit $match , dann gruppieren und schließlich $addToSet verwenden um alle eindeutigen staffId zu erhalten 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"
      }
    }
  }
]);

Hier ist ein Beispiel auf mongoplayground (musste Strings und Regex für das Datum verwenden, da ISODate dort nicht unterstützt wird):https://mongoplayground.net/p/oGM7cfvCRQx