Alexander
И Active Record имеет тот недостаток, что детали работы с базой данных просачиваются в бизнес логику вместе с объектами ORM.
vladissick
звучит несколько размыто)
Alexandrr
И Active Record имеет тот недостаток, что детали работы с базой данных просачиваются в бизнес логику вместе с объектами ORM.
а ещё это не атомарные операции, в случае если мы имеем "обновляемое представление"
Alexandrr
можешь подробнее пожалуйста?
тут хорошо описано: https://ru.wikipedia.org/wiki/ActiveRecord
Aleksei
Всем привет! Есть задача придумать формат для хранения геоданных. Норм ли практика использовать GeoJSON, в котором 3й координатой будет высота? Как ещё храните/работаете с высотами, поделитесь, пожалуйста
Aleksei
это вопрос похож на вот этот пример: "всем привет, я купил автомобиль, посоветуйте мне как на нем ездить, права у меня пару лет"
Я никогда не работал с геоданными, поэтому ничего вообще в этом не понимаю и где ещё задавать подобные вопросы не знаю
Alexandrr
Я никогда не работал с геоданными, поэтому ничего вообще в этом не понимаю и где ещё задавать подобные вопросы не знаю
можно начать с: https://habr.com/ru/articles/228023/ https://habr.com/ru/articles/179157/ https://habr.com/ru/articles/695098/ https://www.google.com/search?q=%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0+%D1%81+%D0%B3%D0%B5%D0%BE%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8+habr
Alexey
всем привет, подскажите как данные в БД удалить show dbs показывает БД с именем smev нужно удалить все в ней, db.requests.drop() - не помог
M.
Ребят подскажите как избежать ситуации: Пагинация + сортировка(например по цене), перехожу на вторую страницу, пока сижу на ней прайс на каком-то товаре меняеться, и при запросе 3 страници результаты дублируються или в некоректной последовательности
Alexander
Ребят подскажите как избежать ситуации: Пагинация + сортировка(например по цене), перехожу на вторую страницу, пока сижу на ней прайс на каком-то товаре меняеться, и при запросе 3 страници результаты дублируються или в некоректной последовательности
Закешировать данные и выдавать из кеша, но тогда там будут устаревшие цены. Вообще, сортировать просто по цене плохо так как цены не уникальны и товары могут показывать в произвольном порядке в пределах одной цены. Лучше добавить к ключу сортировки уникальное поле вроде _id. Тогда порядок сортировки будет строго определен, но это не решает проблему с обновлением цен.
Alexander
Интересный парадокс, если учесть то что товары подгружаються при скроле, и товар со второй странички может из-за изменении цены попасть на первую
Это не парадокс, если вы учтете тот момент, что для каждой страницы запрос выполняется заново с нуля.
Дашини
Всем привет, я работаю над студенческим стартапом и мне нужна информация. Может здесь есть люди, которые разрабатывали коммерческие IT-проекты!! Сталкивались ли вы с задачами по хранению данных в массивах(NumPy)? Если да,то какими инструментами, возможно у кого-то были затруднения в использовании?
Евгений
Народ, подскажите как заставить монгу возвращать даже пустой обьект, а то когда пермишенов внутри нет, то оно даже не отправляет само свойство. схема и ответ от сервер в скринах
Евгений
🤓🤓🤓
можешь дефолт значение прописать
Андрей
Доброе утро! Подскажите, может кто сталкивался. Использую сервис keepalived для управления виртуальным ip/ Он дергает простенький скрипт проверки: mongosh --tls --tlsCAFile cert.pem --host host.com --port 27017 --eval "rs.isMaster().ismaster" --quiet | grep -q true/ Всё было хорошо до обновления монги на 6.1, раньше в скрипте использовал оболочку mongo, но в новой версии пришлось использовать mongosh, данный скрипт стал выполняться 5 сек.
Евгений
можешь дефолт значение прописать
А как в данном случае его обьявить? Как обьявлять деволные знаю, но как в данном случае его обьявить я хз
RapidCodeLab
привет, кто то пишет на го?) l := []primitive.Regex{} for _, v := languages { regex := primitive.Regex{ Pattern: fmt.Sprintf("/^%s/", v), Options: "i", } l = append(l, regex) } val := primitive.E{Key: "Language", Value: bson.M{"$in": l}} почему так не работает?) в консоли db.subscribers.find({"Language":{$in:[/^uk/]}}).count() работает отлично, как блин на го регекспы заюзать нормально?)
RapidCodeLab
Напишите регулярку без слешей как оьычную строку
спасибо, это помогло, к сожалению(моему) это было не очевидно(
First Name
Парни, как только не пробовал сформировать запрос поиска по id, который приходит в запросе на сервер, но mongo не находит элемент коллекции
First Name
643bf7a641f34612627349ab с типом string
Maxmudjon
Вроде, я так уже пробовал
я везде со стрингом найду
First Name
а в js точно надо оборачиватьфункцию в `` ?
Я искал по другому параметру, он выдавал элемент коллекции с таким значением _id просто, вот и пробовал. Пробовал разными способами
First Name
books.findIne({_id: new ObjectId(req.body._id)})
Блин, у меня класс ObjectId не был импортирован просто! Спасиб
First Name
let x = await books.findOne({_id: new ObjectId(req.body._id)})
Vladislav
привет. сейчас разбираюсь c Mongo и Atlas сервисами. предположим у меня есть 100 пользователей, как правильно разграничивать между ними данные в базе данных? то есть предположим есть коллекция Profile и в ней хранится 1000 записей о пользователях и нужно конкретному пользователю ограничить доступ ко всем 999 и дать доступ к только его 1 записе?
Нефор
Можно выдать каждой записи отдельное поле для Id пользователя
Нефор
И уже от этого отталкиваться
Нефор
Хз
Евгений
🤓🤓🤓
не за что
Nick
сервиса (скорее всего)
Тогда каким образом пользователи вообще смогут увидеть другие профили кроме как свои?
Vladislav
у пользователей сервиса есть доступ к базе данных соответственно хочется ограничить доступ к базе, где они могут смотреть только свои записи
Nick
Похоже про бд, тогда ответ - в одной коллекции никак
Vladislav
то есть только создавать 1000 баз данных с коллекцией профиля, где будет лежать одна запись и через роли раздать доступ только к специфической базе, верно?
Vladislav
А как вы заводите юзеров?
пока что разбираюсь только, как правильно но для тестов логинюсь через имеил и пароль
Nick
пока что разбираюсь только, как правильно но для тестов логинюсь через имеил и пароль
А вы уверены что хотите именно в бд пускать, а не через сервис, который уже и должен заниматься и предоставлением инфы и разграничиванием и авторизацией?
Vladislav
https://www.mongodb.com/docs/atlas/app-services/rules/roles/#field-level-permissions еще вот тут вижу на диаграмме в Read Permissions Flowchart некие expressions, которые в моем понимании это условия, что-то типа ProfileCollection.Id == 1
Vladislav
А вы уверены что хотите именно в бд пускать, а не через сервис, который уже и должен заниматься и предоставлением инфы и разграничиванием и авторизацией?
я к этому пришел из-за синхронизации, которая предоставляется mongo предположим какой-то чат есть и соответственно это некая коллекция, в которй можно хранить данные разных юзеров для их чатов, но нужно разграничивать им данные внутри коллекции или создавать коллекцию под чат и давать пользователям доступ к этой коллекции
Vladislav
кажется нашел то что мне надо https://www.mongodb.com/docs/atlas/app-services/rules/expressions/
Ikromov Abdulaziz
Ikromov Abdulaziz
здравствуйте у меня в post запросе в postman появляется такая ошибка
Ikromov Abdulaziz
Nick
property of underfined - чтото не определено, проверьте что все переменные имеют значения и есть нужные свойства/методы у объектов
R
Привет. Мне нужно показывать пользователю уведомления. Но мне нужно хранить только последние 10. Нормально ли перезатирать условно самый старый из 10? или для этого ваще обычно чёт типа редиса используют?
R
Обычно используют limit и ничего не удаляют
но эта информация действительно не требует сохранения. Поскольку, база разрастётся очень быстро тогда. оно должно работать по принципу лога, типа даём ограничений 10 записей и он просто удаляет последнее
R
Я думал может в редис вынести какой-нибудь
Nick
Я думал может в редис вынести какой-нибудь
Вопрос срока жизни, если потеря уведомлений некритична, то можно и редис. То что описали с заменой по сути кольцевой буфер по каждому юзеру - не всегда удобная структура
R
Вопрос срока жизни, если потеря уведомлений некритична, то можно и редис. То что описали с заменой по сути кольцевой буфер по каждому юзеру - не всегда удобная структура
потеря данных абсолютно некритична. более того, если эта база уведомлений будет переполнена - можно удалять самые старые уведомления.
R
Тогда редис хорош, и там вроде даже структуры есть для этого
есть чат по редису? в поиске только мёртвые вижу
Nick
есть чат по редису? в поиске только мёртвые вижу
Не видел, все вопросы закрывались докой и стековерфлоу
Damir
Что на счет Time To live index?
Damir
Можно сделать так, чтобы данные удалялись условно каждую ночь
Damir
Или capped collection
R
Судя по потере данных, они не особо важны, думаю этот вариант как раз то, что вам нужно
а не будет ли это намного медленнее редиса? или в монге получается можно в оперативной памяти хранить данные некритичные?