Loopback hasMany 关系不适用于 mongodb

Loopback hasMany relation doesn't work on mongodb

从 RedHat linux 迁移到 AWS 上的 SUSE 后,我有一些奇怪的行为。

之前一切正常。

这是我的关系:

类别:

{
    "name": "Category",
    "plural": "categories",
    "base": "PersistedModel",
    "relations": {
      ...
      "professions": {
        "type": "hasMany",
        "model": "Profession",
        "foreignKey": ""
      }
    }
 }

职业:

{
    "name": "Profession",
    "plural": "professions",
    "base": "PersistedModel",
    "relations": {
      ...
      "category": {
        "type": "belongsTo",
        "model": "Category",
        "foreignKey": ""
      }
    }
 }

问题是当我更新现有职业时:

{
     "categoryId" : "..."
}

当我请求 /api/categories/{id}/professions

时它不起作用

但是 /api/profession/{id}/category 工作正常。

此外,如果我创建新的职业,例如:

{
     "name" : "TEST",
     "categoryId" : "..."
}

两种方式都很好。

Category.professions.create({ 名称: "TEST2" });也很好用。

我在 AWS 上使用 RedHat linux。现在我在 AWS 上使用 SUSE linux。

Mongo 数据库版本:数据库版本 v3.0.7

编辑:

node --version
v5.4.1

npm --version
3.3.12

npm list loopback
`-- loopback@2.26.2

编辑:

我尝试从 /explorer 面板和代码更新它。

在代码中 (angular) 我这样做:

Profession.prototype$updateAttributes(
{
    id: toAdd[i]
},
{
    categoryId: catId
});

正如我所说,所有代码都在测试服务器 运行 RDHE 上运行。 我会检查 mongo 日志,但我安装了相同的 mongo 版本并使用相同的 mongo.config

好的...所以问题出在这些模块中的一个或两个:

"loopback-connector-mongodb": "^1.13.0"
"loopback-datasource-juggler": "^2.39.0"

由于版本号写成^#.#.#表示更高但兼容。 但是其中一个不起作用:https://github.com/strongloop/loopback/issues/274

这导致了所有问题。

简单的解决方案:

"loopback-connector-mongodb": "1.13.0"
"loopback-datasource-juggler": "2.39.0"

我刚刚安装了我知道有效的版本。