mongodb通过多个数组项找到

时间:2011-11-16 01:25:44

标签: arrays search mongodb

如果我有这样的记录;

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

如何在MongoDB中匹配多个单词?匹配单个单词时,我可以这样做;

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

但是当我尝试多个单词时,它不起作用;

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

我猜测通过使用数组,它会尝试将整个数组与记录中的数组进行匹配,而不是匹配单个内容。

1 个答案:

答案 0 :(得分:144)

取决于您是否尝试使用$all查找words包含两个元素(texthere)的文档:

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

或其中任何一个(texthere)使用$in

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