js - one love
select("data.value")
Nick
select("data.value")
а возвращается в этому случае объект модели или просто какойто нетипизированный объект?
Nick
да обычный объект
значит все преимущества монгуса при такой выборке исчезают.
js - one love
а нет
js - one love
объект модели кажется
js - one love
я просто lean делаю
Nick
интересует можно ли будет поменять чтото в объекте и стандартным save() внести изменения в базу?
Joe
http://thecodebarbarian.com/how-find-works-in-mongoose.html
Joe
интересует можно ли будет поменять чтото в объекте и стандартным save() внести изменения в базу?
.save() при создании новой модели записывает, при существующем - обновляет. Так что, да, можно
js - one love
значит find возвращает простой объект?
Nick
значит find возвращает простой объект?
вроде как если find на модели вызывается, то объект монгуса
Евдоким
значит find возвращает простой объект?
Объект монгуса, а если нужно чтобы это был простой объект, то есть метод lean() или к вернувшемуся объекту применить toJSON()
Roman
Доброго времени суток. Вопрос: как найти все записи в Mongo коллекции по одному элементу из массива? То есть у меня есть коллекция Records с полями _id (string), users (array of string). В users лежит массив айдишников пользователей. Мне нужно найти все Records, в которых упоминается определенный юзер айди. Что я пытался сделать: Records.find({ users: { $elemMatch: { $eq: userId } } }) Но это почему-то не работает. Подскажите, пожлуйста, в чем может быть проблема.
Евдоким
А массив users - это массив объектов?
Ростислав ✚
Roman
массив айдишников
Roman
то есть users: ['dfngngh234', 'dfg34dfh', 'dfgdf32sdf']
Ростислав ✚
то есть users: ['dfngngh234', 'dfg34dfh', 'dfgdf32sdf']
Было бы не плохо если бы ты в колекции юзеров, для каждого ссылался на рекордс. По моему так было бы лучше
Ростислав ✚
Или там мало записей но много пользователей?
Roman
автоматически делает поиск по вложенным элементам в массиве
Oleg
Привет, подскажите пожалуйста как сбросить счетчик trial версии Studio 3T на macos? Или есть какая-нибудь хорошая бесплатная альтернатива этому приложению, чтобы заливать данные в mongodb?
Андрей
Привет, подскажите пожалуйста как сбросить счетчик trial версии Studio 3T на macos? Или есть какая-нибудь хорошая бесплатная альтернатива этому приложению, чтобы заливать данные в mongodb?
А что такого там, что вам нужен такой комбайн для заливки данных? Элементарный импорт/экспорт возможен даже через mongodb compass
Oleg
А что такого там, что вам нужен такой комбайн для заливки данных? Элементарный импорт/экспорт возможен даже через mongodb compass
Я далек от backend'a, поэтому незнаю какое средство лучше для работы с mongodb. Нужен импорт/экспорт 1 раз в месяц и возможность менять поля, индексацию.
Андрей
Ну это мышкой щелкается всё в компасе
Lev
У меня 65к записей весят 100 мегов. Конечно это зависит от количество инфы в записи.... А монга вообще насколько экономит место на диске?
Lev
А зачем вообще оно жмет то?
Romuald
А зачем вообще оно жмет то?
Полагаю, чтобы экономить место на диске?
Lev
А монга лучше жмет чем sql?
Андрей
Рекомендую почитать про snappy компрессию, которая почти повсеместно используется в NoSQL. Если вас интересует максимальное сжатие, то есть и другие либы, но вы и в скорости доступа значительно потеряете.
s
привет. Есть ли какой-то способ передать массив с записями в монго и получить все совпадения?
s
допустим у меня есть 200 кошельков, я хочу сделать запрос к бд и получить 200 записей из бд
Nick
А монга лучше жмет чем sql?
sql как правило никогда не жмет
Lev
sql как правило никогда не жмет
Видимо потому что место и так выделено для конкретного свойства. А монга как я понял хранит структуру для каждой записи
Nick
А зачем вообще оно жмет то?
потому что дешево, как правило cpu всегда хватает с запасом, а вот с дисками и пропускной способностью - нет, поэтому дешевый snappy не сильно жрет проц по сравнению с тем же zlib но уже позволяет на некоторых данных получить хороший процент экономии объема данных
Nick
Видимо потому что место и так выделено для конкретного свойства. А монга как я понял хранит структуру для каждой записи
да - все имена полей хранятся в доке, так же как и в json, только упаковывается в бинарный формат bson
Lev
Все, до меня дошло. Я почему то считал что имена полей где то отдельно лежат и недоумевал почему такой размер.
Lev
Короткие имена полей сэкономят место!))
Nick
Короткие имена полей сэкономят место!))
крайне мало - как раз снаппи нивелирует все эти попытки. Тут были обсуждения на предмет стоит ли переименовывать поля в a,b,c,d,e,f и т.д. - но выиграш составил порядка нескольких процентов, зато координально утратилась читаемость. Вообщем холиварная тема и про нее имеет смысл рассуждать когда у вас количество данных улетает за терабайты. Само собой лишний раз раздувать названия полей до 50-символов тоже не оч хорошо)
Александр
может кто подскажет, монга умеет работать с гео пространственными данным ? (найти области в которых лежит точка, найти пересечение областей, найти точки в радиксе от точки, найти точки в области)
Alex
Если я хочу добавить ещё два уникальных поля: «id» - уникальный идентификатор пользователя и «rnd» уникальная для какой записи строка вида «fixh4dirh9oh», то надо просто добавить их как уникальные индексы? И в случае получения информации о том, что уже есть запись с таким «rnd» генерировать новое значение и пытаться заново вставить? (я нуб)
Alex
Не очень понял вопрос, но у монго есть свой уникальный id.
Нужно добавить ещё один свой, что бы он был, например, строкой из 7 символов. (эта строка должна быть рандомной и уникальной для каждого документа)
Ростислав ✚
Нужно добавить ещё один свой, что бы он был, например, строкой из 7 символов. (эта строка должна быть рандомной и уникальной для каждого документа)
Ну если повторится уникальный то выбросить исключение, а там уже обрабатываю как тебе нужно, можешь изменить и снова попробовать
Yaroslav
Здравствуйте. у меня есть запрос с lookup. фильтр по присоединенным данным работает отлично. В присоединенной коллекции хранятся массивы. Но когда в $group я делаю $filter по этим массивам - это работает не корректно. $unwind не помогает. На скриншоте - структура присоединяемой коллекции. делаю лукап по unit_id і хочу построить группы по данным которые лежат внутри filter_labels. Как это сделать? спасибо)
Alex
А важно ли в какой последовательности находятся поля в документе?
Null
4.4.0 (Jul 30) ◦ 4.2.9 (Aug 21) ◦ 4.0.20 (Aug 21) • Плейграунд для запросов • Документация • Официальные курсы (Бесплатно) Stable: 4.4.0 (Jul 30) ◦ Bugfix: 4.2.9 (Aug 21), 4.0.20 (Aug 21) Legacy: 3.6.19 (Jul 23) По вопросам платной поддержки и покупки лицензий пишите @dd_bb ☠️: 3.4.23 (Jan ‘20), 3.2.21 (Dec ’18), 3.0.15 (May ’17)
Ростислав ✚
А важно ли в какой последовательности находятся поля в документе?
Нет, это что-то типа объекта, у него нет последовательности, только содержимое
Viktar
подскажите пожалусто как вывести количество записей с одинаковыми fist_name + last_name. в сиквеле запрос выглядит так select first_name + ' ' + last_name, count() from table group by irst_name + ' ' last_name
kk
или для каждого сочетания нужно количество?
kk
если для каждого, то db.getCollection('collname').aggregate([ { $group: { _id: { first_name: '$first_name', last_name: '$last_name' }, count: { $sum: 1 } } } ])
s
всем привет, каким образом можно выбрать первые n записей из коллекции?
s
понял
s
а несколько условий для выборки можно задавать?
s
или условие 1 или условие 2
s
так можно?
Roman
Если у вас два условия на одно поле, то можно использовать оператор $in https://docs.mongodb.com/manual/reference/operator/query/in/
s
спасибо
Roman
А в общем случае, надо делать вот так https://docs.mongodb.com/manual/reference/operator/query/or/
Vsevolod
Тут в чатике, случаем, Олега Пудеева нет?
Anonymous
Товарищи, приветствую! Есть вопрос, использую pymongo. Как получить список всех коллекций базы, в документах которых есть определённые поля
Denis 災 nobody
а у кого бывало, что сделал кластер, а оно - "stateStr" : "STARTUP"
Denis 災 nobody
где запускал там стало secondary, остальные стартап уже сутки