适用于不同实验室环境的猫鼬模型架构设置

时间:2018-11-10 11:00:53

标签: node.js mongodb mongoose relationship

所以我只是猫鼬的业余爱好者,尝试了几件事,但是看不到找到适合我问题的良好数据结构或关系。

因此,在项目中,例如有一个客户模型。该客户模型在每个实验室环境中都有唯一的ID。

因此,例如,客户ID:123,具有环境lab5a和labe2e的数据。现在这些是不同的子文档,具有与lab5a和labe2e相同的密钥。我只是看不出如何弄清楚,以便有可能根据环境和客户ID创建功能。

我稍后会举一个例子。

例如:

mongodb中的客户集合具有如下记录:

{
"_id" : "fc290ca0-b024-11e8-be48-813970d10d98",
"data" : {
    "lab5a" : {
        "cityId" : "schiphol1",
        "suspended" : false,
        "budgetDetails" : {
            "budgetLimit" : "0",
            "budgetResetDayOfMonth" : "1"
        },
        "cpes" : [ 
            {
                "cpeId" : "3C36E4-EOSSTB-TEST06"
            }, 
            {
                "cpeId" : "3C36E4-EOSSTB-003356372810"
            }, 
            {
                "cpeId" : "3C36E4-EOSSTB-003356372811"
            }
        ],
        "products" : [],
        "downstreamError" : false,
        "credentials" : [ 
            {
                "credentialId" : "test8"
            }, 
            {
                "credentialId" : "test9"
            }
        ]
    },
    "lab5a_mch" : {
        "cityId" : "schiphol1",
        "suspended" : false,
        "budgetDetails" : {
            "budgetLimit" : "0",
            "budgetResetDayOfMonth" : "1"
        },
        "cpes" : [ 
            {
                "cpeId" : "3C36E4-EOSSTB-TEST06"
            }, 
            {
                "cpeId" : "3C36E4-EOSSTB-003356372810"
            }
        ],
        "products" : [],
        "downstreamError" : true,
        "credentials" : [ 
            {
                "credentialId" : "fc290ca0-b024-11e8-be48-813970d10d98"
            }
        ]
    }
}

}

然后有另一个名为Cpe的集合:

{
"_id" : "3c36e4-eosstb-test06",
"data" : {
    "lab5a" : {
        "smartcardId" : "999994999997",
        "disabled" : false,
        "customerId" : "fc290ca0-b024-11e8-be48-813970d10d98",
        "downstreamError" : false,
        "extSerialNumber" : "extSerialNumber123",
        "physicalDeviceType" : "STB - ARRIS - UHD",
        "componentType" : "VSC"
    },
    "lab5a_mch" : {
        "smartcardId" : "999994999997",
        "disabled" : false,
        "customerId" : "fc290ca0-b024-11e8-be48-813970d10d98",
        "downstreamError" : true,
        "physicalDeviceType" : "STB - ARRIS - UHD",
        "componentType" : "VSC"
    }
}

}

现在我想做的就是删除“数据”,并可以根据环境填写详细信息并在询问时进行检索。

因此,当完成一次为lab5a的客户更新的呼叫时,我想能够检索此客户,而仅更新lab5a的数据。

但是您可以看到每个环境下的字段完全相同,只是其他值一样。

我只是看不到如何为4-5个这样的环境构建良好的可维护模式,每次都在一个特定的customerid下,每次都对多个客户都相同。

与cpe和产品表相同。

关于如何构建查询然后进行更新或检索客户及其特定实验室环境等的事情也一样?

我真的希望有人可以帮助我解决这个问题,因为我无法弄清或理解它。 :(

0 个答案:

没有答案