У меня есть совокупный запрос MongoDBальтернативного Монго совокупного запрос
db.collection.aggregate([
{$match: {a: "a1", b: "b1"}},{$group: {...}},
{$sort: {...}}, {$limit: {10}}
])
У меня есть составной индекс на а и б, и запрос является быстрым.
Однако когда я меняю матч
$match: {$or: [{a: "a1", b: "b1"}, {a: "a2", b: "b2"}]}
запрос становится довольно медленным, и он, кажется, не использовать какие-либо показатели.
Есть ли способ либо: 1) Переписать запрос для использования составного индекса (в виде одного запроса) или 2) Заставить его использовать индекс?
, если вы определили ** db.coll.createIndex ({а: 1, б: 1}) **, ваш запрос будет использовать индекс соединения правильно – Disposer
я так и думал, но это еще не то, что он говорит мне с объяснить. Он не использует индекс с $ или без него. – user2175783
Можете ли вы опубликовать «объяснение» результатов вашего запроса и изменить свой код для включения в какие поля вы выполняете операцию «sort». – BatScream