2016-03-27 9 views
0

Ich versuche, das Äquivalent zu erreichen:MongoDB auswählen als?

IF(CHAR_LENGTH(password) > 0, true, false) AS has_password 

In mongodb, wie kann ich das erreichen? Annahmen:

+0

Mögliches Duplikat von [Ausführen von case-statement in mongodb aggregation framework] (http://stackoverflow.com/questions/15494113/performing-case-statement-in-mongodb-aggregation-framework) – sagi

Antwort

0

Eine Möglichkeit, es nutzt die $project Betreiber des Aggregationsrahmen zu tun

  1. Es ist eine Sammlung ‚Benutzer‘ mit ‚Benutzername‘ und ‚Passwort‘ Felder benannt.
  2. Ein 'fehlendes' Passwort ist null (das kann alles sein - ich habe null nur für das Beispiel verwendet).

db.getCollection('users').aggregate([{$project: {username: 1, has_password: { $ne: [ "$password", null ] }}}])

Der Punkt projiziert das Ergebnis einer Bedienungsperson (die boolean, wie $ ne ist).