𝚂𝚑𝚞𝚔𝚑𝚊
привет, если у меня поле password: { select: fasle }, при логине я пишу User.findOne(…, {password: 1}, (err, doc) => {…}) и у меня в итоге возвращает только поле пароля, как в res отправить опять все кроме пароля?
Vlad
Исходя из потребностей. Не забывайте индекс занимает место и замедляет вставку
Ну вот собственно интересно насколько вставка замедляется. С местом примерно оценить можно, а вставку разве что бенчмарками, которые надо аккуратно делать, и там многое зависит от скорости записи на диск. Но возможно есть какая-то интуиция или рекомендация в стиле «индексировать больше 5 полей не рекомендуется, лучше использовать линейный поиск по подмножеству».
𝚂𝚑𝚞𝚔𝚑𝚊
а почему при сохранении документа без значений полей которые указаны в схеме в базе этих полей нет
𝚂𝚑𝚞𝚔𝚑𝚊
???
𝚂𝚑𝚞𝚔𝚑𝚊
раньше вроде сохранялось
𝚂𝚑𝚞𝚔𝚑𝚊
…
𝚂𝚑𝚞𝚔𝚑𝚊
Кто нибудь ответьте почему mongoose не сохраняет пустые поля указанные в моделе?
𝚂𝚑𝚞𝚔𝚑𝚊
𝚂𝚑𝚞𝚔𝚑𝚊
вот
𝚂𝚑𝚞𝚔𝚑𝚊
например поле birthDate не сохраняется если его не указать
𝚂𝚑𝚞𝚔𝚑𝚊
или lastName
𝚂𝚑𝚞𝚔𝚑𝚊
передаю парамеиры через (req.body)
Rostyslav Pidburachynskyi 🇺🇦🍉
например поле birthDate не сохраняется если его не указать
Типа если lastName = '' то не сохраняет?
𝚂𝚑𝚞𝚔𝚑𝚊
Типа если lastName = '' то не сохраняет?
нет, допустим на странице есть input который дает значение lastName, но когда туда ничего не вводить то lastName не сохраняется
𝚂𝚑𝚞𝚔𝚑𝚊
а lastName сохряняет понял, эт что значит если у меня на странице регистрации нет поля даты то она в бд не созранится?
Rostyslav Pidburachynskyi 🇺🇦🍉
а lastName сохряняет понял, эт что значит если у меня на странице регистрации нет поля даты то она в бд не созранится?
Это вообще не так проверяется. Форма у тебя на фронте, но запрос ты делаешь на сервер. Там ты можешь через console.log(req.body) посмотреть
𝚂𝚑𝚞𝚔𝚑𝚊
да уже посмотрел спасибо)
Boroda
db.get().listCollections().toArray( (error,col) => { col.forEach( c => { if( c.name === 'uploads'){ return false; } else { db.get().createCollection('uploads'); } }); }); Получаю UnhandledPromiseRejectionWarning: MongoError: Collection already exists. NS: Motoshield.uploads
MDWIT
Штооо делоть?( Только установил монгу и она не захотела даже запускаться. При это сразу после установки sudo systemctl status mongodb Выдавал ● mongodb.service - An object/document-oriented database Loaded: loaded (/lib/systemd/system/mongodb.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:mongod(1)
Илья
Ну найти демон в systemd, отредачить в нем ExecStart
Илья
Потом системктл демон релоад, демон старт
Илья
/lib/systemd/system/mongodb.service
Илья
Вот тут конфиг
Илья
Демона
Илья
Твоего
MDWIT
Твоего
спасибо)
MDWIT
починился, спасибо еще раз)
Sardor
Всем привет! Подскажите, пожалуйста, как в монго можно сделать группировку в массивы? У меня есть данные, одно поле у которых повторяется. Например, это type. Мне надо получить массив массивов, где в каждом подмассиве все type будут одинаковыми
Sardor
Привет, яннп) Дай пример
Допустим, есть у меня три документа: { name: 'apple', type: 'fruit' }, { name: 'pineapple', type: 'fruit' }, { name: 'table', type: 'furn' } Мне нужно получиить массив, сгруппированный по type [ [ { name: 'apple', type: 'fruit' }, { name: 'pineapple', type: 'fruit' } ], [ { name: 'table', type: 'furn' } ] ]
Sardor
Вам нужна агрегация с шруппировкой. Для сбора подмассивов - $push
А как правильно прописать $group? Почитал доку, не понял. Даже по примерам. Там в примерах идет $count, либо _id: null, что вообще непонятно, зачем
Nick
{ $group:{ _id: "$type", arr: {$push: "$$ROOT"} } }
Cavidan
Здравствуйте,делаю онлайн магазин,выбрал mongo.Теперь у меня появился вопрос.Как вообще на нем сделать модель базы данных.Недавно только перешёл с Mysql на него, новичок в области mongo.И вообще осмыслен ли выбор mongo?Или использовать лучше другой?Просто читал на форумах,что mongo лучше для этого подходит
Cavidan
вы делаете чтобы поразбираться или на заказ?
Проект серьезный.Хочу начать бизнес,и чтобы поразбираться.Проблем со временем у меня нет так что я готов изучить все это если понадобится
Nick
Проект серьезный.Хочу начать бизнес,и чтобы поразбираться.Проблем со временем у меня нет так что я готов изучить все это если понадобится
тогда просто начинайте делать, ничего не мешает использовать монгу по аналогии с обычной реляционной моделью - можно также сделать коллекции с плоскими данными когда поднаберетесь опыта решите подходит ли лично вам монга
✙ Nikita
тогда просто начинайте делать, ничего не мешает использовать монгу по аналогии с обычной реляционной моделью - можно также сделать коллекции с плоскими данными когда поднаберетесь опыта решите подходит ли лично вам монга
А в каких случаях монго подходит к e commerce проекту лучше чем реляционные бд? Тоже намечается проект, и вот думаю что выбрать, только у меня наоборот - опыта с монго больше чем с sql)
Cavidan
тогда просто начинайте делать, ничего не мешает использовать монгу по аналогии с обычной реляционной моделью - можно также сделать коллекции с плоскими данными когда поднаберетесь опыта решите подходит ли лично вам монга
Я уже начал делать.Скачал mongo compass.Создал базу какую-то.Написал простенький документ для продукта.И вот теперь интересно как в Монге вообще заменена вот эта связь юзера с корзиной например
Nick
если у вас 100+ таблиц с упоротой аналитикой, которая мыслит только плоскими данными, то монга не ваш выбор
Nick
монга очень хороша на проектах с примерно десятком коллекций и не фиксированными требованиями, где то и дело надо чтото добавить
Aleksey
когда проект действительно большой - то для каждых данных лучше подбирать подходящие инструменты. у нас в проектах и мускуль и монго и кликхаус одновременно используются
Nick
плоские = табличные без вложенностей
✙ Nikita
плоские = табличные без вложенностей
Та вот как раз банальный пример это картинки к товару, их может быть несколько, в скл это отдельная таблица картинок которая потом отдельным запросом подгружается в ответ клиенту. В монге - добавил ссылку в массив в документе и готово, можно отдавать ответ клиенту. И вот на каждом шаге вот такие всякие мелочи
Aleksey
Та вот как раз банальный пример это картинки к товару, их может быть несколько, в скл это отдельная таблица картинок которая потом отдельным запросом подгружается в ответ клиенту. В монге - добавил ссылку в массив в документе и готово, можно отдавать ответ клиенту. И вот на каждом шаге вот такие всякие мелочи
монго хорошо подходит для хранения неструктурированных, сырых данных в которых могут появлятся какието новые поля. некоторые справочники тоже удобнее кладутся в один документ нежели городить кучку таблиц
Nick
Та вот как раз банальный пример это картинки к товару, их может быть несколько, в скл это отдельная таблица картинок которая потом отдельным запросом подгружается в ответ клиенту. В монге - добавил ссылку в массив в документе и готово, можно отдавать ответ клиенту. И вот на каждом шаге вот такие всякие мелочи
а это уже зависит от проекта и людей на нем, если у вас аналитик, которые не умеет думать в таком ключе, то вам такие возможности БД не помогут. Опять же уже во всех реляционках имеется тип json, который конкретные такие моменты обходит
Aleksey
Я так понимаю вы больше подразумеваете какие то логи или данные телеметрии которых много? Но вот магазин - там же все более менее ясно?
нене, телеметрия - это тимериес бд - типа прометея или инфлюксдб. логи - кликхаус, реже эластик
✙ Nikita
нене, телеметрия - это тимериес бд - типа прометея или инфлюксдб. логи - кликхаус, реже эластик
Блин, точно, просто где то видел вопрос что человеку агрегировать логи в монго надо было))
Cavidan
Так все таки бд для е-commerce лучше подходит монго?
Aleksey
Я так понимаю вы больше подразумеваете какие то логи или данные телеметрии которых много? Но вот магазин - там же все более менее ясно?
Ну например у нас есть номенлатура для производства, его состав (ТТК) удобнее хранить не кучей зависимостей в реляционке и разворачивать рекурсивной кучей запросов а одним документом в монге. Также в монге мы храним чеки, где могут появлятся какието дополнительные поля котоыре изначально там не были запланированы
Aleksey
ну вот стало надо добавить метку в чек что он был оплачен безналом - просто добавили. структуру бд не меняем надо стало запилить оплату бонусами - легко
Aleksey
но при потоке около пол мульта чеков в день статистику все равно мы собираем не из монги, тяжело. после монги ставится задача, забираются нужные поля и бережно укладываются в кликхаус
Nick
после 100Гб уже не так весело становится)) а после 1ТБ уже даже больно
SuleYman
Привет, магия, не могу отловить ошибку, у меня есть скрипт который подтягивает данные с коллекции, где посмотреть список полученных объектов в переменной avito_objects? $avito_objects = $collection->find( [ 'apartment.ObjectType' => (int) $objectType, '$or' => [ ['user_id' => (int) $GLOBALS['user']->uid], ['user_id' => ''] ] ], [ "limit" => $limit, "skip" => 0 ] );
Cavidan
Можете сказать как мне сделать связь корзины с юзером например?Самую простенькую,чтобы работала.У меня допустим есть документ юзер и документ корзины.Как мне между ними установить связь,чтобы у каждого юзера была своя корзина?
yopp
моим первым проектом на монге это аналитический фронтенд для данных из скад
Nick
после 1ТБ становится по настоящему весело!
ну да, с одной стороны больно, но с другой весело))
yopp
монга тогда только появилась и мы там дров конечно наломали, но уже 10 лет наверное прошло и оно всё ещё работает и собирает и анализирует очень много данных