Anonymous
@deleted_user умир?
Arthur
Нужно найти елемент, который содержить значение и вернуть тру. Каким методом лучше пользоваться?
Arthur
В js есть метод Array.some
Anonymous
привет. не подскажите как правильно на мак монгу ставить?
Гена
Коллеги, подскажите как при создании индекса указать ему имя. НЕ могу найти примера для сингл или компаунд индекса
yopp
Гена
db.products.createIndex(
... {
... "name": test,
... "v" : 1,
... "d." : 1,
... } )
Гена
что тут не так?
yopp
yopp
createIndex({v: 1, d:1}, {name: “fooBar”})
Гена
супер
Гена
спасибо
Aleksey
Добрый день. Хочу весь прайс хранить в одном документе(в виде списка словарей id|name|price и тд). Как мене хранить счетчик или возможно встроенные средства есть, чтоб присваивать каждой позиции в документе свой id ?
Dmitriy
Anonymous
Anonymous
Если инкрементация конкретного поля, то через $inc
yopp
yopp
Храните objectid
yopp
yopp
Без транзакций корректным вариантом будет отдельная коллекция со счётчиками и read by write с $inc
Anonymous
Полностью согласен, раньше хотел делать инкрментацию, затем забил. Но как мысль есть
Aleksey
а для какой цели вам нужен инкрементный (хотя может я придумал?) счетчик?
Будут другие коллекции (заказы), там будет хранится информация о id товара/ кол-во. Почем именно id, а не встроенный _id, тк с этими данными будет работа в браузере, и передавать id (с формы заказа) проще, а как _id даже не знаю (хотя можно строковое представление, но число привычней).
RapidCodeLab
Dmitriy
хотя можно строковое представление, но число привычней
откажитесь от этой привычки если вы решили работать с монгой. выше @dd_bb все правильно написал. используйте либо строковое представление objectid, либо введите в документ еще uuid и используйте его (не забудьте уник на поле сделать)
Aleksey
Здесь конечно напрашивается sql а не nosql, но мне нравится (возможно ошибаюсь) что списки удобней хранить по документам в коллекциях а не доп таблицы.
yopp
ObjectId ~~ uuid
yopp
RapidCodeLab
yopp
Dmitriy
RapidCodeLab
продиктовать object id не так то просто, голосом, например )
Dmitriy
Dmitriy
и это делают
RapidCodeLab
все желания автоинкрементов отсюда, имхо )
yopp
yopp
В 99% случаев идентификаторы не нужны
yopp
Это заблуждение и попытка свалить на потребителей лишние проблемы. Я как клиент не хочу знать номер своего заказа, номер отслеживания или ещё какие-то номера.
yopp
У компании есть мой номер телефона в 99% случаев. Все остальное проще и быстрее уточнить без номеров
yopp
RapidCodeLab
yopp
Aleksey
Спасибо за ответы. Действительно напрашивается sql c json полями. Сам не понимаю почему тянет к mongo, хз.
yopp
RapidCodeLab
yopp
RapidCodeLab
а вот номер заказа приходилось, и он должен(желательно) быть выговаревымым
yopp
yopp
Никогда не просите людей запоминать случайные цифры. Это совершенно бесполезная привычка
Aleksey
Есть коллекции которые очень хорошо ложаться на mongo, но уникальное поле с автоинкрементом и некая транзакционность или атомарность в записи. Есть хорошие примеры/доки про id с автоинкрементом и про атомарность/транзакционность ?
yopp
Есть дата и сумма заказа. Этого хватает в 100% случаев
yopp
yopp
RapidCodeLab
я лично от автоинкремента ушел(sql тема вообще), но номера заказов(образно) для человека, нужны все таки, иногда
yopp
В том-же боксберри не надо запоминать номер отслеживания, нужен только номер телефона
yopp
yopp
Это плохой пользовательский опыт
RapidCodeLab
yopp
Это болезнь
yopp
yopp
Это болезнь, котирую надо лечить. Это не техническая проблема.
Aleksey
Это все привычки. Непонятные "а вдруг" внутри останавливают, но пока не могу придумать где будет "а вдруг", пытаюсь найти.
RapidCodeLab
бизнесу это сложно донести)
yopp
Это не бизнес придумал эту дичь с номерам. Это програмиисты придумали
yopp
Потому что они не умеют делать системы для людей
RapidCodeLab
бизнес хочет(требует) чтоб к челу цеплялся уник номер(id) заказа, я понимаю что смысла от него чуть менее , чем никакого)
yopp
Все это номера это лишняя трата времени на решение несуществующей проблемы
yopp
RapidCodeLab
yopp
yopp
Это нужно лечить
RapidCodeLab
согласен
yopp
А бизнес надо внимательно слушать и разбираться в проблеме. Никому не нужны лишние номера