用Mongoose模糊搜索字符串数组和字符串

时间:2020-09-11 12:08:21

标签: javascript node.js database mongodb mongoose

我在猫鼬中有这个模型:

const Product = mongoose.Schema({ categories: [String], name: String })

我想查看namecategories(这是字符串数组)字段中的内容,以部分匹配某个搜索词,并允许对错别字有一定的容忍度(变得模糊)。

因此,假设我提供查询:brush。 它应返回所有这些版本中的namecategories包含此术语的所有产品(不限于举例说明:) 牙刷,牙刷,刷子,刷子,牙刷等。

如果我做这样的事情:

Product.aggregate(
        [
            {
                $search: {
                    autocomplete: {
                        query: req.query.query,
                        path: "name",
                        fuzzy: {
                            maxEdits: 2,
                        },
                    },
                },
            },
        ]

它可以正常工作,即我在数据库中有一个名为“牙刷”的产品,如果我提供brash作为查询,将返回此产品。

但是我也想在categories数组中检查这种匹配,但是如果我提供path作为['categories', 'name']的话,它什么也不会返回...

似乎无法在String数组上运行自动完成功能。

但是,我是否可以至少检查常规text而不是autocomplete的{​​{1}}数组,并且也保留categories的{​​{1}}?这两种搜索的合并结果排序,因此,如果满足这两个条件中的任何一个,它将返回乘积?

0 个答案:

没有答案
相关问题