在NodeJS中,如何从具有不同字段名称的mongodb输出结果?

Lee*_*Lee 2 javascript mongodb node.js aggregation-framework monk

我正在使用nodejs来查询mongodb,并希望输出带有自定义字段名称的json.

例如,来自MongoDB的原始json可能

    {id:1, text:"abc"}
Run Code Online (Sandbox Code Playgroud)

我想输出它

    {ObjectID:1, DisplayText:"abc"};
Run Code Online (Sandbox Code Playgroud)

我知道MongoDB在其聚合框架中有$ project运算符,但不确定如何在NodeJS中使用它们.

我正在使用的mongodb nodejs包

    var mongo = require('mongodb');
    var monk = require('monk');
    var db = monk('server:port/mydb');
Run Code Online (Sandbox Code Playgroud)

对此提出任何建议.

Nei*_*unn 9

如果您正在使用monk,则可以通过.col所选集合对象上的访问器访问基础节点本机驱动程序集合类型:

  var db = require('monk')('localhost/test')
    , collection = db.get('example');

  collection.col.aggregate(
    [
      { "$project": {
        "_id": 0,
        "ObjectID": "$_id",
        "DisplayText": "$text"
      }}
    ],
    function(err,result) {

      console.log( JSON.stringify( result, undefined, 4 ) );

    }
  );
Run Code Online (Sandbox Code Playgroud)

请注意,.aggregate()以这种方式检索的方法不会像标准的monk集合对象那样包装在promise对象中.但至少这会向您展示如何访问和使用$project来重新塑造您的文档.