Intereting Posts
процесс узла не выходит после того, как firebase один раз Размер Webpack 4 “превышает рекомендуемый предел (244 KiB)” Отправка пустого {} после формы «сообщение» с помощью pug в node.js Доступ к res.locals из шаблонов Backbone.Router Выполните пакет обещаний в серии. После выполнения Promise.all перейдите к следующей партии Как создать таблицу html с Jade, итерации массива рендеринг сервера с помощью response-router v4 и express.js Цены на Google App Engine Flexible env, урок за 500 долларов Сопряженная связанная ошибка не может найти модули numbro, moment, pikaday, ZeroClipboard Какие шаги можно предпринять для улучшения производительности рендеринга jade-шаблона в express с помощью nodejs Nodeunit: Runtime / брошенные ошибки в тестовой функции: _silent_ Как поместить объект в amazon s3, используя назначенный URL? переключение базы данных с помощью мангуста Mongoose найти последние десять записей в базе данных Есть ли способ игнорировать шаблоны Handlebars в шаблоне Handlebars?

Как переименовать / псевдоним поле (ы), извлекая его из 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 }]