✙ Nikita
А нельзя без этого?
Это хз, надо глянуть в доках, может есть геттер по типу getCollection(name)
yacha
Спасибо!
Danil
Всем привет, подскажите пожалуйста логику авторизации. Мне нужно чтобы имя (nickname) зарегистрированного пользователя нажавшего на кнопку появлялось рядом с заданием http://joxi.ru/a2XjKgQi4KyQ6r Правильно ли будет сделать так, чтобы при вводе своих данных на странице авторизации, данные попадали в localStorage, а потом я буду отслеживать событие клика на кнопке и брать данные из localStorage с именем зарегистрированного пользователя и подставлять в нужное мне место? Благодарю за ответы и советы =)
Yavir
Привет, помогите пожалуйста зарезолвить простой квери: return await strapi.query('scheduling') .find( { therapistId, startTime: { $gte: moment(beginningDate).format("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"), // $lt: endDate }, }, )
Yavir
Error: Invalid format, expected a timestamp or an ISO date
Yavir
Yavir
new Date(beginningDate).toISOString() пробовал - не заехало
MDWIT
Всем привет! Можно ли как-то сделать поиск по частичному вхождению для поля Number? Я сейчас использую регулярное выражение /.*301.*/ . Но при поиске по полям с типом Number получаю ошибку cast to number failed for value "/.*301.*/ " Нет вообще вариантов искать по частичному вхождению? нагуглить не получается
Lev
арбитр монги можно поставить на малинку?
Nick
арбитр монги можно поставить на малинку?
если встанет, то почему бы и нет) тут вопрос надежности, если вас устраивает, что она на малинке то да. А так ничего не мешает его поставить рядом с оддной из дата нод, но тогда если она помрет, то и весь репликасет помрет
Nick
потеря работоспособности монги тоже может дорого обойтись)
cat grill friend
hey, is there anyone who manages multidc sharded cluster in mongo?
cat grill friend
how do you route your traffic? any custom implementations or only official?
cat grill friend
when, for example, one dc is down - how it is routed to second dc?
cat grill friend
(you can write answer in russian)
MDWIT
Привет Db.find({number: {$regex: search}}) Попробуй так, если я все правильно понял
Спасибо, но не помогло( В целом сделаю поиск просто по полному вождению)
MDWIT
Ребят могут ли индексы замедлять поиск результатов? Я добавил в индекс названия, в итоге скорость поиска по этому полю уменьшилась в 4 раза
MDWIT
теоретически да, а как запрос выглядит?
{name: /.*т.*/} Поиск по части слова через регулярку
Александр
{name: /.*т.*/} Поиск по части слова через регулярку
Хм. А какой тип индекса вообще может ускорить такой запрос?
MDWIT
Хм. А какой тип индекса вообще может ускорить такой запрос?
🤷‍♂️ просто удивительно стало, что работать стало медленней
Александр
🤷‍♂️ просто удивительно стало, что работать стало медленней
в случаях когда требуется полный обход, без индекса быстрее. Как именно в монге это работает не знаю, но в постгресе, если под условие попадает больше половины записей планировщик индекс использовать не будет. Если у него статистика правильная...
Александр
Понял, спасибо)
https://docs.mongodb.com/manual/reference/operator/query/regex/#index-use может это поможет
Александр
{name: /.*т.*/} Поиск по части слова через регулярку
https://docs.mongodb.com/manual/reference/operator/query/text/#op._S_text https://stackoverflow.com/questions/3305561/how-to-query-mongodb-with-like тут пишут что с текстовым индексом и search запросом должно быстро работать
Dmitriy
Коллеги, что здесь не правильно в запросе ? list это массив objectId [ 60006c4d951f99014e005f68, 60006c4d951f99014e005d52 ] items и activeItems это массивы objectId .updateOne( {_id}, { $pull: { items: {$in: list}, }, $push: { activeItems: {$each: list}, }, } );
Dmitriy
Ошибок не выдает, просто не переносятся элементы
Константин
Всем привет. Может вы подскажите, есть ли решение для инкрементного бекапа монги, всей или выборочной коллекции в шардируемом кластере при схеме psa ? PBM не подходит из за psa, снапшоты через lvm с сохранением oplog тоже нет возможности делать.
yopp
Всем привет. Может вы подскажите, есть ли решение для инкрементного бекапа монги, всей или выборочной коллекции в шардируемом кластере при схеме psa ? PBM не подходит из за psa, снапшоты через lvm с сохранением oplog тоже нет возможности делать.
Здравствуйте. В таком случае Enterprise лицензию, в которую входит Ops Manager, где есть разные схемы бэкапов. Но это от $20к в год за одну ноду или 20к за каждые 128гб памяти для небольших кластеров
yopp
Ну или Атлас
Vladislav
Здраствуйте подскажите как правильно реализовать модель если мне нужно передать масив а там куча разных обьектов, но мне нужно передать все это в бд mongo?
Viktar
Можете дать больше информации. Мне не очень понятно, что вы хотите сделать
Vladislav
type: Array, не?
Можете скинуть пример какой-то, если вам не сложно
Евгений
Добрый день. Есть скрипт php, который выполняет простой запрос find. Скрипт корректный и работает в большинстве случаев нормально. Но иногда наблюдается странное поведение при вызове скрипта через http запрос (то есть запускается web-сервером). Курсор итерируется до 101 итема и наглухо встает до таймаута. Сообщение об ошибке: Failed to send "find" command with database "vk": Failed to read 4 bytes from socket within 300000 milliseconds. Если этот же скрипт запустить из консоли локально - все быстро и хорошо отработает. Находил такой же примерно вопрос в гугле - ответа там нет (( Версию расширения уже проверили, одно и тоже.
Dmytro
Привет, подскажите пожалуйста, почему запросы в базу на mongoDb cloud (там кластер) ну очень долгие
Dmytro
30+ секунд, и таймаут.
Dmytro
каждый 3-й-4й запрос - всё ок
WolderVsrat
Тайм-аут скорее всего не в монге, а на бэке или в параметрах ngnix если есть . У меня запросы и по 2-4 минуты спокойно например выполняются до победного. А долгий скорее всего потому что а) шаред ресурсы (фри план) б) неоптимальный запрос))
Davа
всем привет! у меня вопрос вот схема папок и задач внутри него мне нужно когда с клиента приходить запрос с названием папки/задачи - создать новую папку или новую задачу с id как правильно в mongoose это делать? нужно чтобы все было тривиально пример: folders: [ 0: { title: 'folderName', id: 1, tasks: [ 0: {task: 'taskName', id:1} ] } , 1: { title: 'folderName', id: 2, tasks: [ 0: {task: 'taskName', id:1} , 1: {task: 'taskName', id:2} // some other tasks ] } 1: { title: 'folderName', id: 3, tasks: [ 0: {task: 'taskName', id:1} /// some tasks ] } ]
Davа
нужно чтобы в обьектах с title и в обьектах с task поля 'id' устанавливались автомачический и чтобы когда я буду делать удаление id устанавливались соответсвенно привер: folders: [ 0: { title: 'folderName', id: 1, tasks: [ 0: {task: 'taskName', id:1} ] } , 1: { title: 'folderName', id: 2, tasks: [ 0: {task: 'taskName', id:1} , 1: {task: 'taskName', id:2} // some other tasks ] } 1: { title: 'folderName', id: 3, tasks: [ 0: {task: 'taskName', id:1} /// some tasks ] } удаляю 1: { title: 'folderName2', id: 2, tasks: [ 0: {task: 'taskName', id:1} , 1: {task: 'taskName', id:2} // some other tasks ] } получаю folders: [ 0: { title: 'folderName1', id: 1, tasks: [ 0: {task: 'taskName', id:1} ] } , ] 1: { title: 'folderName3', id: 2, tasks: [ 0: {task: 'taskName', id:1} /// some tasks ] }
Davа
subDocument https://mongoosejs.com/docs/subdocs.html
а тут не нашел инфы как это поможет решить мою задачу с индексами
Davа
как мне сетить индексы?
The end.
Доброе утро, не подскажите как создать строчку такого формата: mongodb://localhost:27017/givdbrandy
Davа
чтобы они не такими - { _id: '501d86090d371bab2c0341c5', name: 'Liesl' } как кастомными типо начиная по возрастанию с айди 1
The end.
а конкретнее? Вопрос не понятен
Мне нужно создать строчку для подключения, в mongodb я полный 0
Kenan
Мне нужно создать строчку для подключения, в mongodb я полный 0
1) Это JS ( если ты юзаешь ноду ) 2) Ты уже и так сделал строку, что не так?
Kenan
У меня просто при входе ошибка
а может ты покажешь код и ошибку? Или мы сами должны гадать?
Viktar
Сейчас оно вообще не запускается.
Не находит путь к данным. Проверьте
Viktar
C:\data\db
Kenan
Сейчас оно вообще не запускается.
а теперь можно читать ошибку. Как уже сказали выше - путь
WolderVsrat
Потому и ошибка при попытке коннекта, монга и не поднимается с указанной ошибкой
D
Всем привет. может кто сталкивался и решил подобное. как в MongoDB реализовать блокировку колекции на чтение? Ну или есть другии идей как решить следующий кейс. Нужно сделать insert в колекцию на основании результатов поиска. if ( !collection.find( complexQuery) ) { collection.insert( data ) } Проблема в том, что если на api одновременно прилетают два взаимо исключающих запроса. то такая конструкция не обеспечивает гарантию, что в колекцию не попадаут оба инсерта. потому, что из-за асинхрона снача выполняются два find и if срабатывает. А нужно, что бы find + insert отработали без вклинивания.
yopp
Вашу проблему можно решить или транзакциями, в этом случае одна из транзакций получит abort
yopp
Или оптимистичной блокировой
D
хм
Alex
Доброго времени суток, хочу создать пользователя у которого будут все права на конкретную бд. Делаю это так db.createUser( { user: "app_test", pwd: "123", roles:[{role: "dbOwner" , db:"mydb"}]}) после его создания захожу mongo -u app_test -p '123' --authenticationDatabase mydb теперь пытаюсь создать колекцию db.createCollection("test", { capped : true, size : 5242880, max : 5000 } ) Пишет ошибку rs0:PRIMARY> db.createCollection("test", { capped : true, size : 5242880, max : 5000 } ) { "operationTime" : Timestamp(1610701209, 1), "ok" : 0, "errmsg" : "not authorized on test to execute command { create: \"test\", capped: true, size: 5242880.0, max: 5000.0, lsid: { id: UUID(\"884681a3-32ac-4a28-9665-862df37c5c53\") }, $clusterTime: { clusterTime: Timestamp(1610701160, 6), signature: { hash: BinData(0, 77BDB59E5B6C1B8DB0FA3E6F643D404A76A7AC35), keyId: 6893849739066867716 } }, $db: \"test\" }", "code" : 13, "codeName" : "Unauthorized", "$clusterTime" : { "clusterTime" : Timestamp(1610701209, 1), "signature" : { "hash" : BinData(0,"RjCFir+C5Y0bwDHevR+7TwsNLXY="), "keyId" : NumberLong("6893849739066867716") } } }
yopp
authenticationDatabase mydb
Alex
он ведь вроде dbowner , почему not authorized
yopp
по возможности не создавайте пользователей за пределами базы по-умолчанию
yopp
(admin помоему)
D
Вашу проблему можно решить или транзакциями, в этом случае одна из транзакций получит abort
так как мне оптимистичная блокировка поможет ? Это вид блокировки на существующий документ. У меня проблема кроется в не существующем еще документе. мне нужно писимистичная блокировка. но в монге как я понял ее нет
Alex
я зашел админом и создал пользователя в конкретной базе (не admin)
D
@dd_bb С транзакция тоже не понял как мне это поможет
D
Уникальный индекс по полю?
да они бы помогли бы, но у меня запрос на диапазоны, а не наточно совпадение. поэтому индексы не вариант