Я использую Meteor для запроса коллекции MongoDB. В запросе в настоящее время используется неправильный индекс. С необработанным Mongo можно передать запрос подсказку. использовать указанный индекс. Есть ли способ сделать это напрямую из Meteor?
2 ответа
Это можно сделать прямо внутри Meteor, используя синтаксис $ query: $ hint:. Стоит отметить, что использование опции сортировки вместо $ orderBy: кажется, вызывает у Meteor жалобу.
Примере:
Meteor.collection.find(
{ $query:{
//query goes here
}, $hint: {
"indexField1": 1, "indexField2": 1, "indexField3": -1
}, $orderBy:{
"createdAt": -1 //sorting option
}
},
{limit:30} //sort here makes Meteor complain
);
Убедитесь, что индекс, который вы указываете в своей подсказке, действительно существует в вашей базе данных, иначе mongo будет жаловаться на получение плохой подсказки.
Беглого взгляда на код метеорита-монго-варпера я его не вижу. Однако для meteor доступен весь драйвер node.js (см. Аналогичную проблему с findAndModify https: // github.com/meteor/meteor/issues/1070).
И подсказка определенно доступна в драйвере node.js, так что, возможно, создание собственной оболочки было бы решением? Мне еще не приходилось переходить этот мост, поэтому я не могу предложить более явного решения, но это может быть хорошей отправной точкой (и отличной идеей для пакета!).
Похожие вопросы
Связанные вопросы
Новые вопросы
meteor
Meteor - это модульная платформа для разработки веб-и мобильных приложений на JavaScript на основе платформы NodeJS.