我有一个 Mongo 搜索设置,它根据许多标准遍历我的条目。
目前最简单的方法(由于使用通配符,我知道它对性能不友好,但由于不区分大小写并且用户不输入整个单词,我无法找到更好的方法)是在搜索中使用正则表达式通配符. 搜索最终看起来像这样:
{ gender: /Womens/i, designer: /Voodoo Girl/i } // Should return ~200 results
{ gender: /Mens/i, designer: /Voodoo Girl/i } // Should return 0 results
在上面的示例中,两个搜索都返回了大约 200 个结果(“Voodoo Girl”是一个女装标签,所有相应的条目都有一个gender: "Womens"
字段。)。奇怪的是,当我进行其他搜索时,例如:
{ designer: /Voodoo Girl/i, store: /Store XYZ/i }
// 应该返回 0 个结果
我得到正确数量的结果(0)。这是订单的事情吗?如何确保我的搜索只返回与我的所有通配符查询匹配的结果?
作为参考,查询是nodeJS
通过简单的db.products.find({criteria})
查找进行的。