我正在NodeJS上写一个小公司的个人资料管理系统。我使用MongoDB进行数据存储。我有收集“公司”,每个对象都是一家公司。公司有几个参数,如“名称”,“电子邮件”,“电话”。这些都是单字符串字段。这是我目前的“公司”模式 - 对象。
{
"company_name": "ACME Ltd.",
"company_email": "acmeltd@example.com",
"company_tel": "+49374727384",
"_id": {
"$oid": "4fd115b6e94a7e2408000001"
}
}
这是我保存当前“公司”-profiles的代码:
app.post('/addcompany',function(req,res){
db.collection("companies",function(err,collection){
collection.insert( {
"company_name":req.body.company_name,
"company_email":req.body.company_email,
"company_tel":req.body.company_tel
});
});
res.redirect('/companies');
});
然而,每家公司都有几家(每家公司不同)供应商,我想将它们存放在“公司” - 对象中。所以,我认为我应该在我的“公司”对象中创建内部对象“供应商”,对象“供应商”必须有内部对象“supplier1”,“supplier2”等。每个“供应商1”对象应该有6个参数例如“supplier_name”,“supplier_tel”等。所以,我的问题是,这是我的“公司”对象中存储耗材列表的最佳方式,我应该如何使用NodeJS?
更新:我修改了这样的代码,现在可以了!
app.post('/addcompany',function(req,res){
db.collection("companies",function(err,collection){
collection.insert( {
"company_name":req.body.company_name,
"company_email":req.body.company_email,
"company_tel":req.body.company_tel,
"company_suppliers" : [
{ "supplier_name" : "jane_test", "supplier_tel" : "123456_test", "comment" : "Good supplier_test" },
{ "supplier_name" : "jessy_test", "supplier_tel" : "654321_test", "comment" : "Bad supplier_test" }
]
});
});
res.redirect('/companies');
});
答案 0 :(得分:1)
如果您将它们存储在公司对象中,我建议使用专门用于此目的的数据结构:数组。
MongoDB关于模式设计的讨论对于您在此做出的决定非常普遍:http://www.mongodb.org/display/DOCS/Schema+Design特别要看“嵌入和链接”部分。