S'il vous plaît aidez-moi avec des index dans mongoDB.MongoDB. Comment configurer les index?
Il existe une collection dans laquelle 800 000 documents. Il y a une requête qui est très longue. Environ 5 secondes!
{
"$or":[
{
"performer":"534ba408f9cd0ecb51711673",
"$or":[
{
"performersRole":"534ba30bf9cd0ec151a69522"
},
{
"performersRole":{
"$exists":false
}
}
]
},
{
"performersRole":"534ba30bf9cd0ec151a69522",
"notShowInToDo":{
"$ne":true
}
}
],
"taskTime":{
"$gte":1409774400,
"$lt":1409860799
},
"$and":[
{
"$or":[
{
"department":{
"$in":[
"5356134ef9cd0e4805672a15",
"53561368f9cd0e4b05645f3f",
"53a0357ff9cd0e670537c4b7",
"53a03594f9cd0e6705389449"
]
}
},
{
"department":{
"$exists":false
}
}
]
},
{
"$or":[
{
"salon":"534f7b3bf9cd0e311e77896f"
},
{
"salon":{
"$exists":false
}
}
]
}
],
"isDone":{
"$ne":true
}
}
Quels index ajouter pour optimiser? Merci pour tout conseil!
Presque tous les documents sur ce format:
{
"_id": "541da66cf535a4a8569dd0ed",
"title": "test task",
"taskTime": NumberLong(1411229292),
"client": "53f876b2f535a4187f9e1264",
"salon": "534f7c3cf9cd0e91206dd948",
"track": "541da66cf535a4a8569dd0ec",
"department": "53a0357ff9cd0e670537c4b7",
"type": "invitePBP",
"performersRole": [
"534ba30bf9cd0ec151a69522"
],
"notShowInToDo": true,
"@createTime": NumberLong(1411229292),
"@updateTime": NumberLong(1411229292)
}
Vous feriez mieux de donner plus de détails. Par exemple, quels index avez-vous faits? quels champs ont des valeurs uniques? ... – Wizard
ajouté à l'exemple de document de la question – jeka5555
En plus des constructions très étranges, vous pourriez simplement [lire les docs sur l'indexation] (http://docs.mongodb.org/manual/core/indexes/). –