Loopback属于与MongoDB的关系,给出错误400

时间:2017-12-10 14:51:52

标签: mongodb rest loopbackjs strongloop loopback

在我的MongoDB数据库中,我有这些数据:

在用户集合中:

{
    "_id" : ObjectId("5a2c725621691170792fbc3e"),
    "username" : "username",
    "email" : "test@gmail.com"
}

在内容集中:

{
    "_id" : ObjectId("5a2c7857b4f9e44a4d618bfd"),
    "title" : "Article title",
    "author" : ObjectId("5a2c725621691170792fbc3e")
}

所以我在Loopback中创建了两个模型,其关系为hasMany / belongsTo:

{
  "name": "user",
  ...
  "properties": {
    "username": {
      "type": "string",
      "required": true
    },
    "email": {
      "type": "string",
      "required": true
    }
  },
  "relations": {
    "contents": {
      "type": "hasMany",
      "model": "content",
      "foreignKey": "author"
    }
  }
}

内容有作者:

{
  "name": "content",
  "properties": {
    "title": {
      "type": "string",
      "required": true
    }
  },
  "relations": {
    "author": {
      "type": "belongsTo",
      "model": "user",
      "foreignKey": "author"
    }
  },
}

这很好,Loopback给了我那些URL:

  • / users / {id} / contents获取用户的内容,工作正常
  • /内容/ {ID} /作者 获取内容的作者,但是这个给了我一个错误:
  

400密钥不匹配:content.author:function(){[native code]},   user.id:5a2c725621691170792fbc3e

我无法弄清楚什么是错的,谢谢!

1 个答案:

答案 0 :(得分:0)

我设置了一个空项目并添加了所描述的模型和关系,它可以通过内容通过用户和用户获取内容。

在您的示例数据中,我看到内容中的 author 值与 id 不同>用户。这是问题或实际数据中的错字吗?

  

“_ id”:ObjectId(“5a2c725621691170792fb c3e ”)

     

“author”:ObjectId(“5a2c7af721691170792fb fd3 ”)