Как переименовать / псевдоним поле (ы), извлекая его из MongoDB через запрос с использованием собственного диска MongoDB-Node.JS?

Рассмотрим следующий код, который я использую для извлечения данных с моего локального сервера MongoDB.

var Db = require('mongodb').Db, MongoClient = require('mongodb').MongoClient, Server = require('mongodb').Server, ReplSetServers = require('mongodb').ReplSetServers, ObjectID = require('mongodb').ObjectID, Binary = require('mongodb').Binary, GridStore = require('mongodb').GridStore, Code = require('mongodb').Code, BSON = require('mongodb').pure().BSON, assert = require('assert'); var db = new Db('test', new Server('localhost', 27017)); db.open(function(err, db) { db.createCollection('simple_limit_skip_find_one_query', function(err, collection) { assert.equal(null, err); collection.insert([{a:1, b:1}, {a:2, b:2}, {a:3, b:3}], {w:1}, function(err, result) { assert.equal(null, err); collection.findOne({a:1}, {fields:{b:1}}, function(err, doc) { // I got the read document in the object 'doc' }); }); }); }); 

Теперь я хочу переименовать имя поля при получении только (не в БД), например, с указанным выше кодом, у меня есть поле с именем b в возвращаемом объекте doc Я хочу, чтобы он был baseID вместо b

Есть ли способ сделать это?

Примечание. Я не могу принять меры по восстановленному объекту doc для переименования поля, такого как переименование ключа JSON. Я хочу, чтобы это было запрошено, и MongoDB будет таким же.

Используйте агрегатную структуру MonogDB (Но вам нужно обновить экземпляр сервера MongoDB до> = 2.1).

Ниже приведен пример для приведенного выше примера

 var Db = require('mongodb').Db, MongoClient = require('mongodb').MongoClient, Server = require('mongodb').Server, ReplSetServers = require('mongodb').ReplSetServers, ObjectID = require('mongodb').ObjectID, Binary = require('mongodb').Binary, GridStore = require('mongodb').GridStore, Code = require('mongodb').Code, BSON = require('mongodb').pure().BSON, assert = require('assert'); db.open(function (err, db) { if (err) console.dir(err); db.createCollection('simple_limit_skip_find_one_query', function (err, collection) { if (err) console.dir(err); collection.insert([{ a: 1, b: 1 }, { a: 2, b: 2 }, { a: 3, b: 3}], { w: 1 }, function (err, doc) { if (err) console.dir(err); collection.aggregate([ { $project: { a: 1, _id:0, baseID: "$b" } } ], function (err, doc) { if (err) console.dir(err); console.log(doc); }); }); }); }); 

Выход:

 [ { a: 1, baseID: 1 }, { a: 2, baseID: 2 }, { a: 3, baseID: 3 }]