96 如果我有这样的记录; { "text": "text goes here", "words": ["text", "goes", "here"] } 如何在MongoDB中匹配多个单词?当匹配一个单词时,我可以做到; db.find({ words: "text" }) 但是当我尝试多个单词时,它不起作用。 db.find({ words: ["text", "here"] }) 我猜想通过使用数组,它会尝试将整个数组与记录中的数组进行匹配,而不是匹配单个内容。 arrays search mongodb — 史蒂芬·贝兰格 source
168 取决于您是否要使用以下命令查找words同时包含两个元素(text和here)的文档$all: db.things.find({ words: { $all: ["text", "here"] }}); 或其中一个(text或here)使用$in: db.things.find({ words: { $in: ["text", "here"] }}); — 阿卜杜勒·哈迪 source 3 这也对我有帮助,我需要它在数组中查找对象ID,在类似$ in的地方:[ObjectId(“ 4f9f2c336b810d0cf0000017”)]失败,$ in:[“ 4f9f2c336b810d0cf0000017”]起作用 — jbnunn 您还可以在mangodb支持页面docs.mongodb.org/manual/core/indexes/#indexes-on-sub-documents和docs.mongodb.org/manual/core/indexes/#multikey-indexes中 — Vivek Bajpai 2013年 1 这比循环数组并执行单个find()更好吗? — 罗希特·奈尔