Относительно документов Монго с такой структурой:
{ "_id":"123", "level1_nested_collection": [
{
"start": <some iso date>,
"end": <some iso date>,
"level2_nested_collection": [
{
"name":<some string>
"value"<come string>
}]]
}
На самом деле, я использую этот индекс для некоторых запросов:
{
"level1_nested_collection.level2_nested_collection.value" : 1
}
Но, в некоторых случаях, у меня плохие показатели, потому что у нас может быть много документов для искомого значения (docsExamined).
В общем, запрос также имеет критерии для дат структуры level1. например:
{
"level1_nested_collection": {
"$elemMatch": {
"level2_nested_collection": {
"$elemMatch": {
"name": "foo",
"value": "3823184"
}
}
},
"start": {
"$lte": {
"$date": "2019-01-02T20:38:56.000Z"
}
},
"end": {
"$gt": {
"$date": "2019-01-02T20:38:56.000Z"
}
}
}
}
С последним запросом могу ли я воспользоваться этим индексом:
{
"level1_nested_collection.start" : 1,
"level1_nested_collection.end" : 1,
"level1_nested_collection.level2_nested_collection.value" : 1
}
MongoDB версия 3.2, коллекция около 500Mdocs, без ограждения