コーヒーに関する情報を保存するためにMongoDBを使用していますが、クエリで問題が発生しています。
私のドキュメント構造は次のとおりです。
{ _id: "Thailand Bok", tags: ["Strong", "Smooth", "Dark"] }
名前またはタグのいずれかで検索できるクエリを作成しようとしています。
クエリ文字列が"ThailandBok"または["Strong"、 "Smooth"]である可能性があるため、_idまたは各タグを含むリクエストを検索します。
SQL用語で考えていた場合、次のようになります。
"WHERE `_id` like 'Not present%' OR ("Strong" IN `tags` AND "Smooth" IN `tags`)"
私がこれまでに持っているクエリは次のとおりです。
{
$or: [
{ _id: { $regex: '^Not present', '$options': 'i' } },
{
$and: [
{ tags: 'Strong' },
{ tags: 'Smooth' }
]
}
]
}
編集:クエリの間違いを修正し、_idが一致するかタグが一致する場合に機能することを明確にしました