[arrays] mongodb 여러 배열 항목으로 찾기

이런 기록이 있다면

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

MongoDB에서 여러 단어를 어떻게 일치시킬 수 있습니까? 한 단어를 일치시킬 때 이렇게 할 수 있습니다.

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

하지만 여러 단어에 대해 시도하면 작동하지 않습니다.

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

배열을 사용하여 개별 내용을 일치시키는 대신 전체 배열을 레코드의 배열과 일치 시키려고한다고 생각합니다.



답변

다음을 사용하여 words두 요소 ( texthere) 가 모두 포함 된 문서를 찾으려고하는지 여부에 따라 다릅니다 $all.

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

또는 다음 중 하나 ( text또는 here) 사용 $in:

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


답변