ユーザーごとのアイテムのリストを維持し(MongoDBでNode.js環境のMongoose ODMを使用)、後でクエリを実行してアイテムがユーザーによって所有されているかどうかを確認するとします。たとえば、各ユーザーのお気に入りの色をすべて保存し、後で特定の色が特定のユーザーによって所有されているかどうかを確認したいとします。ユーザードキュメント内の配列ではなく、ユーザードキュメント内に埋め込みオブジェクトとして色を格納する方がよいように思われます。その理由は、オブジェクトのプロパティが存在するかどうかを確認できるので、オブジェクトに色が存在するかどうかを確認する方が効率的であるように思われるためです。
if(user.colors.yellow){
//true case
} else {
//false case
}
色が配列のどこかに存在するかどうかを確認するために配列全体を反復処理する必要がある配列とは異なります。
for (var i = 0; i < user.colors.length; i++) {
if(user.colors[i] === "yellow"){
//true case
} else {
//false case
}
}
しかし、私がオンラインで見た多くの例から、このタイプのものに配列を使用することはかなり普及しているようです。私は何かが足りないのですか?長所/短所は何ですか、そしてこれを行うための最良の方法は何ですか?