web-dev-qa-db-ja.com

複数の配列項目によるmongodbの検索

このような記録がある場合;

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

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

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

しかし、複数の単語に対してこれを試しても、うまくいきません。

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

配列を使用することで、個々のコンテンツを照合するのではなく、配列全体をレコード内の配列と照合しようとしていると思います。

89

wordsに両方の要素(texthere)が含まれるドキュメントを $all

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

またはそれらのいずれか(textまたはhere$in

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