我在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,查询产品时仍会返回系统。
在我看来,事情已经破裂。