当前位置: 首页 > 面试题库 >

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

颛孙航
2023-03-14
问题内容

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

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

    {id:1, text:"abc"}

我想将其输出为

    {ObjectID:1, DisplayText:"abc"};

我了解MongoDB在其聚合框架中具有$ project运算符,但不确定如何在NodeJS中使用它们。

我正在使用的mongodb nodejs软件包是

    var mongo = require('mongodb');
    var monk = require('monk');
    var db = monk('server:port/mydb');

对此有任何建议。


问题答案:

如果您使用的是和尚,则可以通过.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 ) );

    }
  );

请注意,.aggregate()以这种方式检索的方法不会像标准和尚收集对象那样包装在promise对象中。但这至少向您展示了如何访问和使用它
$project

来调整文档的形状。



 类似资料:
  • 我正在探索GraphQL,想知道是否有任何重命名响应字段的方法,例如我有一个POJO与这些字段 GraphQL查询: 我的回答是这样的 我是否可以将名称字段重命名为类似用户名的名称,以便我的回答如下

  • 我使用的是,我需要展平包含同名字段的文档。 我创建的文档如下所示: 在那之后,我试图像下面这样压平文档: 我的主要方法是: 展平后,我得到的文档包含一个展平字段,但我必须得到两个展平字段。 如何解决此问题?

  • 在我的程序中,我得到以下返回组名的字符串: 有时甚至更多的组名: 所以我有了所有组的名称,但它们之间用逗号隔开,嵌套在文本中。 如何从引号之间的字符串中获得所有单词? 我想把下面的组名从上面的字符串写到一个数据帧中,例如: 当前1 断开扭矩 压力 有人知道怎么做吗?

  • 我有一个PDF文件,其中包含一个表单,其中的字段具有相同的字段名。这是为了共享文档中的数据而做的。例如,我有合同,此文档的每一页都必须有公司名称,我将公司名称写在一个表单字段中,并将其复制到当前文档的所有页面,但是当我尝试使用库阅读此文档时,我没有得到此数据,因为只创建一个字段名为的字段,而另一个字段名为clean。 如何使用库读取具有相同字段名称的字段?

  • 问题内容: 考虑以下代码 如果名称重叠,如何访问外部类的字段? 我尝试了以下方法: 并收到编译错误。 现实生活中会不会发生这种情况? 问题答案: 最好的解决方案是为字段赋予有意义的名称和不同的名称。但这并不总是可能的… 要获取字段或外部实例,您可以使用 或者该字段是静态的 注意:通常是缩写(取决于实际定义的位置) 同样,您需要调用外部类的实例方法。 要么 注意:在Java 8中,您有可能是基于实例

  • 问题内容: Jackson json注释中以下jax-b注释的等效方式是什么? 我需要生成json而不是xml,并且需要了解在jax-b中等效表示的常规jackson批注。 重命名字段。 使用getter代替字段。 如果json / xml元素名称是Java保留字(例如“ ”,“ ”,“ ”等),则这些功能尤其重要。 因此我们必须将POJO字段分别命名为“ new ”,“ _ public ”,“