Loopback hasMany关系在mongodb上不起作用

时间:2016-02-11 11:36:55

标签: node.js mongodb loopbackjs strongloop

在从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} / professionions

时,它不起作用

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

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

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

两种方式都很好。

Category.professions.create({name:“TEST2”});工作正常。

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

Mongo db版本:db version v3.0.7

编辑:

node --version
v5.4.1

npm --version
3.3.12

npm list loopback
`-- loopback@2.26.2

编辑:

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

代码中的

(有角度的)我这样做:

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

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

1 个答案:

答案 0 :(得分:1)

Okey ......所以问题是这些模块中的一个或两个:

"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"

我刚安装了我知道可行的版本。