Vladislav
Кстати, а кто-нибудь помнит, $elemMatch в find-запросах может учитывать индексы?
yopp
yopp
Динамические имена ключей это очень не эффективно
yopp
С точки зрения индексации
Vladislav
ну они уж не настолько и динамически изменяемые. Спросил больше из-за интереса. Просто был уверен, что вайлдкардами это можно решить))
vveare138
гайз, а подскажите вот что: есть документ в котором есть поле типа array<object>
vveare138
и нужно написать такой projection который вернет документ, но исключит элементы из массива по некоторому условию
Mykola 🤷🏼♀️
vveare138
благодарю
Dmitry
/report
madspectator
Подскажите, если я хочу создать partial index, причём условие сразу ставится на первое поле в индексе, то что мне указывать в "основном" поле?
Ну т.е. db.collection.createIndex({foo}, {partialFilterExpression: ...}), что дожно быть в {foo}?
madspectator
Просто {}?
Daniil
madspectator
Читал. Не нашёл ответа.
madspectator
Мне нужно индекс на одно поле, причём только если оно имеет значение true.
madspectator
Как буде выглядеть запрос создания индекса?
madspectator
Там нет примера для случая, который я описал.
Daniil
db.contacts.createIndex(
{ name: 1 },
{ partialFilterExpression: { name: { $exists: true } } }
)
Daniil
Вот пример из этого абзаца
madspectator
Это не мой случай.
madspectator
Daniil
db.contacts.createIndex(
{ name: 1 },
{ partialFilterExpression: { name: true } }
)
Daniil
Не ваш случай по прежнему?
madspectator
А, хм.
madspectator
Всё, понял, спасибо.
madspectator
А можно так сделать?
createIndex({foo: 1, bar: 1}, partialIndexExpression: {foo: true})
Т.е. уточнение индекса по первому ключу, когда есть второй ключ.
Потом запрос c сортировкой будет использвать этот индекс для поиска и сортировки? find({foo: true}).sort({bar: 1})
Paul
Привет
Делаю бота и пытаюсь достать юзера из базы данных, но не получается
Когда использовал db.User.findOne(), получалось взять юзера, но похоже берёт только верхнего из базы, а не того, кто обращается к боту
Подскажите, пожалуйста, как это делается правильно
Konstantin
Konstantin
И название Фреймворка, который используется для написания бота
Konstantin
Хм, с телеграфом давно не работал.
Я лично пишу на puregram
Daniil
Daniil
Вы ничего не передаёте в качестве параметров запроса
Daniil
db.User.findOne({ email: “email” }) например
Daniil
https://docs.mongodb.com
Daniil
Рекомендую изучить, дока основная небольшая
Daniil
Чтобы не было проблем с написанием хотя бы элементарных crud запросов
Paul
Код в студию!
Вот так примерно
const CronJob = require('cron').CronJob;
const job = new CronJob('*/5 * * * * *', async function() {
const user = await db.User.findOne();
await bot.telegram.sendMessage(user.chat_id, 'Hello World');
})
bot.command('launch', async (ctx) => {
job.start()
})
bot.command('stop', async (ctx) => {
job.stop();
})
Konstantin
Konstantin
id: message.from.id
Konstantin
Или что там внутри
Paul
@d_lebedinsky @superman_da
спасибо, поизучаю
Paul
id: message.from.id
Выдаёт ошибку и просит ctx, только не знаю, как его взять, потому что юзер напрямую не обращается, только при запуске скрипта
const user = await db.User.findOne({chat_id: ctx.chat.id});
await bot.telegram.sendMessage(user.chat_id, 'Hello World');
Konstantin
а, да
Konstantin
в telegraf же ctx
yopp
madspectator
T.A
добрый день. создаю несколько документов с помощью метода insertMany. документы создаются, но без индексов. одм mongoose
T.A
T.A
вообще они должны при инсэрте создаваться?
Daniil
Это две не связанные между собой операции - создание индекса и вставка документов
T.A
Daniil
Daniil
Но если они уже созданы, то они никуда не денутся
Daniil
Как вы создаёте индекс?
T.A
и эта модель в основном будет запрашиваться в таком виде. как мне лучше объявить индексы для максимальной производительности? отдельно или compound?
T.A
объявить так или отдельно?
T.A
yopp
Судя по
https://mongoosejs.com/docs/guide.html#indexes
У вас может быть autoaindexes в false установлен
T.A
yopp
В продакшене создание индексов это отдельная проблема
T.A
T.A
yopp
Если для разработки, то убедиться что у вас включён autoIndex
yopp
Я не разбираюсь в монгусе, к сожалению
T.A
yopp
Порядок cardNumber особой роли не играет, если вы сортировать не будете по нему
T.A
yopp
Отдельно смысла нет
yopp
Пересечение индексов это дорогая операция, дороже чем просто проехаться по индексу
yopp
По номеру карты не скажется, номер карты это префикс
yopp
По дате скажется, это постфикс