MongoDb/Mongoose filtern anhand von Subdocuments

  • Guten Morgen,


    bin gerade dabei mich mit dem Thema MongoDb in Verbindung mit mongoose auseinanderzusetzen und bin auf ein Problem gestoßen, bei dem ich nicht mehr weiter weiss, dahe hoffe ich auf ein paar Denkanstöße.


    Ich habe 2 Schemas News und Tags:

    Code
    1. var News = new mongoose.Schema({
    2. titel: { type: String, required: true },
    3. tags: [
    4. { type: mongoose.Schema.Types.ObjectId, ref: 'Tag' }
    5. ]
    6. });
    7. var Tag = new mongoose.Schema({
    8. name: { type: String, required: true }
    9. });


    Ich möchte gerne alle News, anhand von einem Tag, auslesen, z.B. alle News mit dem Tag Sport.

    Ich habe das Ganze folgendermaßen versucht zu lösen, allerdings ist das Problem, dass wenn ich kein Tag mit dem Namen Sport finde, ich trotzdem die News bekomme, was ich allerdings nicht möchte.

    Code
    1. const news = await News.find()
    2. .populate({
    3. path: 'tags',
    4. Model: Tag,
    5. match: { name: "Sport" },
    6. });

    Ich weiß ich kann das Ganze lösen, indem ich die Tags nicht Referenziere sonden in die News einbette, allerdings hab ich dann das Problem, dass wenn ein Tag bearbeite wird, dann auch jede einzelne News bearbeitet werden muss.


    Vielleicht hat ja irgendjemand einen Lösungsvorschlag, wie ich zu meinem Ziel gelangen könnte