복붙노트

[MONGODB] 여러 배열 항목에서 찾을 수 MongoDB를

MONGODB

여러 배열 항목에서 찾을 수 MongoDB를

이 같은 기록이있는 경우;

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

어떻게하여 MongoDB에 여러 단어를 일치시킬 수 있습니까? 한 단어와 일치하는 때 나는이 작업을 수행 할 수 있습니다;

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

나는 여러 단어에 대해이 작업을하려고 할 때, 그것은 작동하지 않습니다;

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

나는 배열을 사용하여, 오히려 개별 내용이 일치하지 않고, 레코드의 일에 대한 전체 배열을 일치 시키려고 같은데요.

해결법

  1. ==============================

    1.당신이 단어 $ 모두 사용 (여기에 텍스트와) 두 요소를 포함하는 경우 문서를 찾기 위해 노력하고 있는지 여부에 따라 달라집니다 :

    당신이 단어 $ 모두 사용 (여기에 텍스트와) 두 요소를 포함하는 경우 문서를 찾기 위해 노력하고 있는지 여부에 따라 달라집니다 :

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

    또는 중 하나에 $를 사용하여 (여기에 텍스트 나)의 :

    db.things.find({ words: { $in: ["text", "here"] }});
    
  2. from https://stackoverflow.com/questions/8145523/mongodb-find-by-multiple-array-items by cc-by-sa and MIT license