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

Ist es möglich, ein berechnetes Feld aus einer MongoDB-Abfrage zurückzugeben?

Das neue Aggregation Framework In MongoDB 2.2 können Sie berechnete Felder über $project hinzufügen Operator. Das ist nicht ganz dasselbe wie willkürlich Funktionen, da Sie unterstützte Operatoren verwenden müssen , aber es bietet ein gutes Maß an Flexibilität.

Hier ist Ihr Beispiel für das Erhöhen von _id s in ein neues myNum Feld:

MongoDB shell version: 2.2.0-rc0

> db.test.insert({_id:123});

> db.test.insert({_id:456});

> db.test.aggregate(
  { $project : {
      _id : 1,
     'myNum': { $add: [ "$_id", 1]}
  }}
)
{
    "result" : [
        {
            "_id" : 123,
            "myNum" : 124
        },
        {
            "_id" : 456,
            "myNum" : 457
        }
    ],
    "ok" : 1
}