私のローカル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'
});
});
});
});
は今、私は取得しているときに(ないDBに)、フィールド名を変更したい場合は、上記のコードで、たとえば、私はそれがbaseID
になりたい返されるオブジェクトdoc
にb
という名前のフィールドを持っています代わりにb
これを実行する方法はありますか?
注:取得したオブジェクトdoc
に対して、JSONキーの名前を変更するような名前を変更することはできません。私はそれを照会してMongoDBと同じにしたい。
残念ながら、ないすべてのドライバのこの機能を持っています。まだ関連性のある議論がある(http://stackoverflow.com/questions/14106261/do-any-mongodb-orms-allow-you-to-alias-fields)。 – WiredPrairie