1

それで、私はSQLの世界から来たので、何か間違ったことを理解したかもしれません。私は商品のコレクションを持っています。

_id: "0234weasq43rq",
title: "Panasonic",
descr: "blah blah",
price: 132,
specifications {
   weight: 135,
   color: "black",
   type: "LCD",
   diagonal: 50
}

_id: "0234weasq43rq",
title: "Samsung Galaxy Tab",
descr: "blah blah",
price: 132,
specifications {
   weight: 135,
   color: "white",
   standard: "GSM",
   wifi: "Yes"
}

商品のカテゴリ(電話やコンピューターなど)ごとに異なる仕様を設定できますか?goods.find(specifications { diagonal: 50 })すべての商品に「対角」仕様があるとは限らない場合、のようなクエリを使用して商品を見つけるのに問題はありますか?

ありがとう!

4

2 に答える 2

2

はい、同じコレクションであっても、ドキュメントの構造が完全に異なる場合があります。あなたの例では、クエリは対角線= 50の商品のみを返し、対角線が定義されていない(または、対角線が定義されているが50ではない)ドキュメントを省略します。

于 2012-02-28T08:43:00.337 に答える
1

商品のカテゴリーごとに異なる仕様を維持できますか (例: 電話とコンピューター)?

同じコレクションに異なる構造のドキュメントを含めることができます。そのため、商品のカテゴリごとに異なる仕様を維持することができます。

すべての商品が「対角」仕様ではない場合、goods.find(specifications {diagonal: 50}) のようなクエリを使用して商品を検索する際に問題はありますか?

いいえ、絶対に。あなたにとって役立つかもしれないことの 1 つは 、すべてのドキュメント (たとえば、対角線フィールド) に表示されないフィールドの疎なインデックスです。このインデックスには、このフィールドを持たないドキュメントは含まれません。

于 2012-02-28T09:36:09.283 に答える