javascript – Mongoose Model Object表现得很奇怪

我正在使用mongoose从数据库中获取人员数据.这是我使用的代码:

return new Promise((resolve, reject) => {
    Person.findOne({}, (err, result) => {
      if(err) {
        reject(err);
      } else {
        console.log(result);
        console.log(result.firstname);
        console.log(result.githubLink);
        resolve(result);
      }
    });
  });

这是从console.log输出的(结果)

{ _id: 593c35e6ed9581db3ef85d75,
firstname: 'MyName',
lastname: 'MyLastName',
jobtitle: 'Web Developer',
email: 'foo@example.com',
githubLink: 'https://github.com/myGithub' }

这是console.log(result.firstname)的结果;和console.log(result.githubLink);

MyName
undefined

这个承诺是否会以某种方式弄乱这个结果?这真的很奇怪,因为只记录结果显示我的github链接并记录链接说未定义.

解决方法:

如果数据库对象中存在实际上不存在于为模型定义的模式中的字段,则它们仍将“记录”但您无法正常访问该属性的值.

在大多数情况下,您确实希望在架构中正确定义项目:

githubLink: String

或者您可以使用.get()方法访问您不想定义的属性:

result.get('githubLink')
上一篇:连接mongoose


下一篇:javascript – 使用Mongoose Schema导入CSV