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索引的使用是有限的,甚至对于不区分大小写的查询通常是无效的。