2016-08-05 32 views
0

Ich habe eine Sammlung, in der jedes Objekt ein boolesches Feld anonymous hat. Wenn es true ist, dann möchte ich das Feld owner herausgefiltert werden (in meiner Sammlung ist es eigentlich eine Reihe von Eigentümern).MongoDb-Projektion abhängig von einem anderen (booleschen) Feld

Gibt es eine Möglichkeit, diese Einschränkung direkt in die Projektion einzubeziehen? Etwas wie folgt aus:

MyCollection.find({}, {$if: {owners: anonymous} })

Antwort

1

Sie können Befehl wie folgt verwenden:

MyCollection.aggregate([{$project: {owner: {$cond: ["$anonymous", null, "$owner"]}}}]); 

Es ist nicht die Eigentümerfeld herauszufiltern, sondern setzt sie auf null.