特定の値を含む配列を持つドキュメントを検索する 質問する

特定の値を含む配列を持つドキュメントを検索する 質問する

このスキーマがあれば...

person = {
    name : String,
    favoriteFoods : Array
}

...favoriteFoods配列には文字列が設定されます。mongoose を使用して、「寿司」を好きな食べ物とする人をすべて見つけるにはどうすればよいでしょうか。

私は次のようなものを期待していました:

PersonModel.find({ favoriteFoods : { $contains : "sushi" }, function(...) {...});

(mongodb には存在しないことはわかっていますが$contains、解決策を知る前に何を見つけることを期待していたかを説明しているだけです)

ベストアンサー1

単純な文字列の配列なのでfavouriteFoods、そのフィールドを直接クエリすることができます。

PersonModel.find({ favouriteFoods: "sushi" }, ...); // favouriteFoods contains "sushi"

ただし、スキーマ内で文字列配列を明示的に作成することもお勧めします。

person = {
    name : String,
    favouriteFoods : [String]
}

関連するドキュメントはここにあります:https://docs.mongodb.com/manual/tutorial/クエリ配列/

おすすめ記事