Considérez le code suivant, que j'utilise pour récupérer les données de mon serveur MongoDB local.
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) {
// J'ai obtenu le document lu dans l'objet 'doc'
});
});
});
});
Maintenant, je veux renommer un nom de champ tout en le récupérant uniquement (pas dans la base de données), par exemple avec le code ci-dessus, j'ai un champ nommé b
dans l'objet retourné doc
je veux qu'il soit baseID
au lieu de b
Existe-t-il un moyen de le faire ?
Remarque : Je ne peux pas agir sur l'objet récupéré doc
pour renommer le champ comme le renommage de clé JSON. Je veux que ce soit une requête et MongoDB fera de même.