2010-12-14 132 views
3

我很困惑,究竟是以下情況下的最佳格式:MongoDB的架構設計

Name: Pretty nice hot dog 
Stock: 10 
Weight: 0.1 grams 
Price: 2 dollars 

Name: An ordinary dumbbell 
Stock: 5 
Weight: 4 kilograms 
Price: 667.98 yens 

此:

db.item.save ({"_id" : 1, "name" : "Pretty nice hot dog", "stock" : 10, "weight" : {"value" : 0.1, "unit" : "gram"}, "price" : {"value" : 2, "unit" : "dollar"}}) 
db.item.save ({"_id" : 2, "name" : "An ordinary dumbbell", "stock" : 5, "weight" : {"value" : 4, "unit" : "kilogram"}, "price" : {"value" : 667.98, "unit" : "yen"}}) 

或者這樣:

db.unit.save ({"_id" : 1, "name" : "dollar"}) 
db.unit.save ({"_id" : 2, "name" : "yen"}) 
db.unit.save ({"_id" : 4, "name" : "gram"}) 
db.unit.save ({"_id" : 5, "name" : "kilogram"}) 

db.item.save ({"_id" : 1, "name" : "Pretty nice hot dog", "stock" : 10, "weight" : {"value" : 0.1, "unit" : [new DBRef ("unit", 4)]}, "price" : [new DBRef ("unit", 1)]}) 
db.item.save ({"_id" : 2, "name" : "An ordinary dumbbell", "stock" : 5, "weight" : {"value" : 4, "unit" : [new DBRef ("unit", 5)]}, "price" : [new DBRef ("unit", 2)]}) 

的值字段「單位」是不可變的,我不知道我是否應該把它放在一個單獨的集合中。

感謝

回答

3

我會說不。除非你需要靈活性從單位查詢(所有項目有一定的成本),否則我不會。如果您需要,您可以隨時使用地圖縮減功能以稍後獲取特定成本的所有項目。