通过多个数组项查找

如果我有这样的记录;

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

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

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

但是,当我尝试多个单词,它不工作;

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

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

92766 次浏览

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

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

or either of them (text or here) using $in:

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