En NodeJS, ¿cómo generar resultados de mongodb con diferentes nombres de campo?

Estoy usando nodejs para consultar mongodb y quiero generar json con nombres de campo personalizados.

Por ejemplo, json original de MongoDB tal vez

{id:1, text:"abc"} 

Me gustaría mostrarlo como

  {ObjectID:1, DisplayText:"abc"}; 

Entiendo que MongoDB tiene el operador del proyecto $ en su marco agregado, pero no estoy seguro de cómo usarlos en NodeJS.

Los paquetes mongodb nodejs que estoy usando son

  var mongo = require('mongodb'); var monk = require('monk'); var db = monk('server:port/mydb'); 

Aprecio cualquier consejo sobre esto.

Si está usando el monje como parece, entonces puede acceder al tipo de colección de controladores nativos del nodo subyacente a través del .col en su objeto de colección seleccionado:

  var db = require('monk')('localhost/test') , collection = db.get('example'); collection.col.aggregate( [ { "$project": { "_id": 0, "ObjectID": "$_id", "DisplayText": "$text" }} ], function(err,result) { console.log( JSON.stringify( result, undefined, 4 ) ); } ); 

Tenga en cuenta que los métodos como .aggregate() recuperados de esta manera no se incluyen en el objeto de promesa como lo son los objetos de colección de monjes estándar. Pero al menos esto le muestra cómo acceder y usar $project para volver a dar forma a su documento.

Eche un vistazo a los virtuales en Mongoose http://mongoosejs.com/docs/guide.html#virtuals

Podrías hacer algo como:

 someSchema.virtual('text').get(function() { return this.DisplayText; }