2010-12-14 9 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)]}) 

値フィールド "unit"は不変ですが、別のコレクションに入れるべきかどうかはわかりません。 MongoDBのドキュメントから

おかげ

答えて

3

私はいいえと言います。ユニット(あるコストのすべてのアイテム)からクエリを実行する柔軟性が必要な場合を除き、私はそうしません。必要な場合は、map reduceを使用して、後で特定のコストのすべてのアイテムを取得することができます。

関連する問題