在回送中查询mongodb文档

时间:2018-11-06 17:21:48

标签: javascript node.js mongodb loopbackjs

我正在尝试查询子级文档,但是会引发以下错误。

错误:无法调用Project.find()。尚未设置find方法。 PersistedModel尚未正确附加到数据源!

我只能在资源管理器中看到项目文档,我也想查看其子文档用户。

project.json

{
  "name": "Project",
  "base": "PersistedModel",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {
    "name": {
      "type": "string",
      "required": true
    },
    "description": {
      "type": "string",
      "required": true
    }
  },
  "validations": [],
  "relations": {
    "user": {
      "type": "belongsTo",
      "model": "User",
      "foreignKey": "userId"
    }
  },
  "acls": [],
  "methods": {}
}

project.js

'use strict';

module.exports = function(Project) {


Project.find().then((projects => console.log(projects))).catch((err) => console.log(err));
};

2 个答案:

答案 0 :(得分:0)

尝试将代码更改为:

'use strict';

module.exports = function(Project) {


Project.find().exec().then((projects => console.log(projects))).catch((err) => 
console.log(err));
};

我在查询中添加了.exec()。

答案 1 :(得分:0)

Model.js文件并不是真正用于执行事务的(尽管如果使用events也可能)。
服务器尚未启动,数据源尚未连接到模型。您可以访问并可以自定义的唯一信息是该模型的属性。

如果要在启动时执行操作,请将脚本放在server/boot目录中。

server/boot/project.js

 module.exports = (server) => {

      const Project = server.models.Project;
      Project.find().then((projects => console.log(projects))).catch((err) => console.log(err))
 }