我试图找出从MEAN堆栈应用程序等客户端应用程序处理嵌套MongoDB文档的CRUD是否有最佳实践。答案不一定要特定于MongooseJS或直接连接到客户端的MongoDB,它更多的是关于概念。如何在嵌套文档上处理CRUD?
这是我的示例文档:
{
"company":"Acme Industries",
"website":"http://www.acme.com",
"active":true,
"contacts":[
{
"firstName":"Wile",
"lastName":"Coyote",
"dateCreated":"4/3/2015",
"address":"123 Main St",
"city":"Yuma",
"state":"AZ",
"postalCode":"84938",
"phoneNumbers":[
{
"Home":"(333) 555-8958",
"Cell":"(444) 940-3484"
}
],
"emailAddresses":[
{
"Home":"wile@coyote.com",
"Work":"info@acme.com"
}
]
}
]
}
我的客户端应用程序将具有这些不同形式的界面:
我知道为每个嵌套文档创建子模式。这比仅仅管理根文档的每个节点中的子数据更好吗?
似乎这需要与关系模式类似地处理,在关系模式中,我为需要管理的每个独立区域创建4个不同的CRUD方案。或者,还有更好的方法?似乎没有关于如何做到这一点的明确文档。
答案 0 :(得分:0)
对于嵌套的东西,我通常会分别创建子模式,然后根据id将它们链接到正确的文档(将联系模式设置为有一个名为userId的字段,它等于当前用户的mongoId) 。这可能只是通过减少你必须处理的巢数来帮助编辑。
如果没有,$ push(添加)和$ set(编辑)是很棒的朋友。