Arrays MongoDB索引搜索

Arrays MongoDB索引搜索,arrays,mongodb,mongoose,mongodb-query,Arrays,Mongodb,Mongoose,Mongodb Query,我正在执行下面的查询 db.collection.explain().find({ "$and": [ { $or: [ { "document.attr1": { "$regex": "^searchValue_1$", "$options": "i" } }, { "document.arrayElement":

我正在执行下面的查询

db.collection.explain().find({
  "$and": [
    {
      $or: [
        {
          "document.attr1": {
            "$regex": "^searchValue_1$",
            "$options": "i"
          }
        },
        {
          "document.arrayElement": {
            "$elemMatch": {
              "docInsideArray": "^searchValue_1$"
            }
          }
        }
      ]
    }, {
      "document.isActive": true
    }
  ]
})
集合中的文档具有以下模式

{
   document:{
      "attr1":"my_Document_1",
      "isActive":"Y",
      "arrayElement":[
         {
            docInsideArray:"myDocumentValue"
         },
         {
            docInsideArray:"myDocumentValue_1"
         }
      ]
   }
}
我有以下索引

db.collection.createIndex( { "document.arrayElement.docInsideArray": 1 } )

当我使用explain()执行前面提到的find()时,它正在执行集合扫描而不是索引扫描。对于上述find(),请建议使用任何其他索引?

Regex索引的使用是有限的,甚至对于不区分大小写的查询通常是无效的。