猫鼬NodeJS-使用.select子查询获取查询的属性

时间:2019-12-15 17:42:52

标签: node.js express mongoose

我的NodeJS | Express应用程序内部的route.js文件中有GET请求正文。

await Furniture.findOne({ name: givenName }, async (err, result) => {
    // make it pure object
    var pureObject = result.toObject();
    // return result
    res.json({
      pt: pureObject.pt,
      en: pureObject.en,
      pl: pureObject.pl
    });
  }).select("names -_id");

当我尝试打印时,即[console.log(pureObject.pt)],它们是不确定的。

  1. 当我打印整个对象[console.log(pureObject)]时,我得到的正是我想要的:

    {名称:{pt:“ pt中的名称”,en:“ en中的名称”,pl:“ pl中的名称”}

  2. 此外:当我删除“ select”子查询时,我可以毫无问题地获得那些特定的属性。

那是为什么?我尝试了pureObject ['pt'],但显然也不起作用。

1 个答案:

答案 0 :(得分:1)

由于console.log(pureObject)提供以下输出:

{ names: { pt: 'name in pt', en: 'name in en', pl: 'name in pl' }

因此,您需要使用pureObject.names.pt,即console.log(pureObject.names.pt)

为什么?从输出中可以清楚地看到pureObject有一个对象names,该对象具有pten和{{1} }。