MongoDB: framework de agregación: $ match entre campos

Tengo una colección de prueba con dos documentos:

> db.test.find().pretty() { "_id" : ObjectId("510114b46c1a3a0f6e5dd7aa"), "a" : 1, "b" : 2 } { "_id" : ObjectId("510114c86c1a3a0f6e5dd7ab"), "a" : 3, "b" : 1 } 

Con el marco de agregación, quiero obtener solo los documentos donde a es mayor que b. $ gt solo obtiene valores en argumentos, no campos …

 > db.test.aggregate([{"$match":{"$a":{"$gt":"$b"}}}]) { "result" : [ ], "ok" : 1 } /* don't work*/ 

Tienes algunas ideas ?

Gracias por adelantado

Atentamente

Hmm sin muchas pruebas en mi extremo, diré que puedes usar $cmp para esto:

http://docs.mongodb.org/manual/reference/aggregation/cmp/#_S_cmp

 db.test.aggregate([ {$project: { // All your other fields here cmp_value: {$cmp: ['$a', '$b']} }}, {$match: {cmp_value: {$gt: 0}}} ]) 

Puede haber una manera mejor, pero no tengo una instalación de MongoDB cerca de mí para probar.