mongodb 複数の配列項目で検索する 質問する

mongodb 複数の配列項目で検索する 質問する

このような記録があれば;

{
  "text": "text goes here",
  "words": ["text", "goes", "here"]
}

MongoDB で複数の単語を一致させるにはどうすればよいですか? 単一の単語を一致させる場合は、次のようにします。

db.find({ words: "text" })

しかし、複数の単語に対してこれを試しても機能しません。

db.find({ words: ["text", "here"] })

配列を使用すると、個々の内容を一致させるのではなく、配列全体をレコード内のものと一致させようとするのではないかと思います。

ベストアンサー1

words両方の要素(textおよびhere)を含む文書を検索しようとしているかどうかによって異なります。$all:

db.things.find({ words: { $all: ["text", "here"] }});

またはどちらか(textまたはhere)を使用して$in:

db.things.find({ words: { $in: ["text", "here"] }});

おすすめ記事