Rozważ poniższy kod, którego używam do pobierania danych z mojego lokalnego serwera MongoDB.Jak zmienić nazwę/alias pól podczas pobierania z MongoDB przez kwerendę przy użyciu macierzystego napędu 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'
});
});
});
});
Teraz chcę zmienić nazwę nazwę pola podczas pobierania tylko (nie w DB), na przykład z powyższym kodem, mam pole o nazwie b
w zwróconym obiekcie doc
chcę go mieć baseID
zamiast b
Czy jest jakiś sposób to zrobić?
Uwaga: Nie mogę podjąć działania w odniesieniu do pobranego obiektu doc
, aby zmienić nazwę pola, np. Zmienić nazwę klucza JSON. Chcę, żeby to było sprawdzane, a MongoDB będzie takie samo.
Niestety, nie wszystkie sterowniki mają tę funkcję. Istnieje dyskusja [here] (http://stackoverflow.com/questions/14106261/do-any-mongodb-orms-allow-you-to-alias-fields), która wciąż ma znaczenie. – WiredPrairie