loopback上的奇怪行为有很多关系

时间:2016-02-29 14:46:10

标签: mongodb loopbackjs

我在MongoDb数据库中有一个环回模型(产品),与另一个模型(系统)具有hasMany关系:

"relations": {
"systems": {
  "type": "hasMany",
  "model": "systems",
  "foreignKey": "productId"
}

},

当我在产品服务上使用包含过滤器时,我得到了一系列系统:

{
"name": "SAP BW  7.3 Business Warehouse",
"active": true,
"id": "56a127823967cdb263edf682",
"systems": 
[
  {
   "sid": "AB1",
   "description": "IBM SAP ERP ECC 6.04 ABAP",
   productId": "56a127823967cdb263edf682"
  },
  {
   "sid": "BW5",
   "description": "BW5 - BW 7.0/SEM 6.0 - Bus Intel",
   productId": "56a127823967cdb263edf682"
  }
]
},

这就是我想要的。但是,当我将系统中的productId更新为“”时,上述服务的输出不会改变。它仍包含相同的系统,即使MongoDB系统集合中的记录显示productId为“”。

{
  sid: "AB1",
  description: "IBM SAP ERP ECC 6.04 ABAP",
  productId: "",
  id: "56a127a93967cdb263edf69c",
},

起初我认为它可能是浏览器中的缓存问题,但我尝试了不同的浏览器并得到了相同的结果。它可能是Mongo中的缓存吗?

谢谢,

罗斯

更新:我想我可能对hasMany关系有一个基本的误解。我有另一个产品实例返回:

{
  name: "SAP ERP GBI Intro to ERP 2.40 (SCC)",
  id: "56a127823967cdb263edf684",
  systems: [
  {
    sid: "BK1",
    description: "SAP ERP GLOBAL BIKE V2.30",
    productId: "56a127823967cdb263edf684",
    id: "56a127a93967cdb263edf6aa"
  },
  {
    sid: "BK3",
    description: "SAP ERP GLOBAL BIKE V2.30",
    id: "56a127a93967cdb263edf6ac"
  },
  {
   sid: "BK1",
   description: "SAP ERP GLOBAL BIKE V2.30",
   productId: "56a127823967cdb263edf684",
   id: "56a127a93967cdb263edf6aa"
  }
]
},

所以它有两次相同的系统实例。这表明描述两个集合之间关系的数据存储在某处,并且在执行查询时不会动态创建。

我也尝试过DELETE端点:

http://localhost:3000/api/products/56a127823967cdb263edf682/systems

即使按预期返回204,查询产品时仍会返回系统。

在我看来,事情已经破裂。

0 个答案:

没有答案