Mongodb is查询速度太慢,无法对索引字段进行部分字段搜索

Mongodb is查询速度太慢,无法对索引字段进行部分字段搜索,mongodb,mongodb-query,Mongodb,Mongodb Query,我有8亿份mongodb文档 Customer { "lastName" : "LAST", "firstName" : "FIRST" } 我有以下索引 db.customer.createIndex( {lastName: 1, firstName: 1},{collation: { locale: "en_US", strength: 1}}) 如果我根据lastName和firstName进行搜索,那么搜索速度很快,并且在10毫秒内得到结果 db.custome

我有8亿份mongodb文档

Customer
  {
   "lastName" : "LAST",
   "firstName" : "FIRST"
  }
我有以下索引

db.customer.createIndex( {lastName: 1, firstName: 1},{collation: { locale: "en_US", strength: 1}})
如果我根据lastName和firstName进行搜索,那么搜索速度很快,并且在10毫秒内得到结果

 db.customer.find({lastName:"LAST" ,firstName:"FIRST"}).collation({ locale: 'en_US', strength: 1 })
我试图找到所有与姓氏中的字符“相同”的文档。但返回响应需要100多秒。我尝试了以下选项,但都超过了100秒。 mongoDB真的喜欢类似sql的操作吗
(“%AS%”)

1)

db.customer.find({lastName:{"$regex": "AS"} ,firstName:"FIRST"}).collation({ locale: 'en_US', strength: 1 })
2)

db.customer.find({lastName:{"$regex": "/AS/"} ,firstName:"FIRST"}).collation({ locale: 'en_US', strength: 1 })
db.customer.find({lastName:{"$regex": "^/AS/"} ,firstName:"FIRST"}).collation({ locale: 'en_US', strength: 1 })
3)

db.customer.find({lastName:{"$regex": "/AS/"} ,firstName:"FIRST"}).collation({ locale: 'en_US', strength: 1 })
db.customer.find({lastName:{"$regex": "^/AS/"} ,firstName:"FIRST"}).collation({ locale: 'en_US', strength: 1 })

尝试在正则表达式上使用前缀以允许MongoDB使用范围


db.customer.find({lastName:{“$regex”:“/^AS/”},firstName:“FIRST”})。排序({locale:'en_-US',strength:1})
hi,您的建议与我的原始帖子中的查询相同(案例3)。我把小屋放在你放在外面的图案里。无论如何,如果这没有帮助,请尝试为每个字段创建不同的索引,而不是合并索引