Considerare il seguente codice, che sto utilizzando per recuperare i dati dal mio server MongoDB locale.Come rinominare/alias i campi mentre lo si preleva da MongoDB attraverso la query usando l'unità nativa MongoDB-Node.JS?
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'
});
});
});
});
Ora, voglio rinominare un nome di campo durante il recupero solo (non nel DB), per esempio con il codice di cui sopra, ho un campo denominato b
in oggetto restituito doc
io voglio che sia baseID
invece di b
C'è un modo per farlo?
Nota: non è possibile intervenire sull'oggetto richiamato doc
per rinominare il campo come la ridenominazione della chiave JSON. Voglio che venga interrogato e MongoDB farà lo stesso.
Purtroppo, non tutti i piloti hanno questa caratteristica. C'è una discussione [qui] (http://stackoverflow.com/questions/14106261/do-any-mongodb-orms-allow-you-to-alias-fields) che è ancora rilevante. – WiredPrairie