有个数组字段 是这样的 a = ['128jinianlu', 'gongkang', 'pengpu']
我要这么搜:db.shanghai.find({a: /ong/})
我直接给a加索引,搜索的速度还不如不添加快,这是为何
本问题及下方已被采纳的回答均来自云栖社区【Redis&MongoDB 社区大群】。https://yq.aliyun.com/articles/690084 点击链接欢迎加入社区大社群。
正则表达式就跟SQL里面的LIKE一样,除非左侧固定({a: /^ong/}),否则无法使用索引。
目前MongoDB和一般关系数据库都没有支持这样部分匹配的算法。ElasticSearch似乎有相关支持。但是要明白这是个空间换时间的做法,可能会消耗大量空间。确实需要可以去相关版块提问。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。