Ich habe eine mongodb-Aggregationspipeline mit einer $ -Projektstufe, und ich möchte bestimmte Felder nur dann einfügen, wenn die Bedingungen erfüllt sind. Insbesondere möchte ich die _id in einer Bedingung ausschließen und ein zweites Feld 'second_id' in die andere Bedingung aufnehmen.Bedingt ein Feld (_id oder andere) in mongodb Projekt-Aggregation enthalten?
Ich weiß, dass es (noch) nicht möglich ist, Felder aus einem mongodb $ -Projekt auszuschließen, aber ist es möglich, sie bedingt einzuschließen?
Gibt es eine Möglichkeit, das _id-Feld bedingt auszuschließen? Es akzeptiert eine 0 oder 1, aber was, wenn ich das 0 oder 1 basierend auf einer if-Anweisung bestimmen möchte. Wie würde das gemacht werden?
Pseudocode für _id:
$project: { _id: { $ifNull: [ "$user_id", 0 ] } }
Die hauptsächliche Verwendung hierfür wäre die doc.user_id als Ergebnis _id zu verwenden, oder erlauben mongodb eine neue autoincrement _id zu erstellen, wenn das user_id null ist.