Abilmansur
Всем привет. Возможно ли посчитать количество детей определенного parent-a используя mongo? Я читал в документации про деревья, но они, как я понял, считают/находят только напрямую связанных детей, не внуков.
yopp
Anonymous
mongoose возвращает объекты в _doc и их не получается редактировать, у кого-нить было такое?
Daniil
он возвращает свои объекты, их нельзя редактировать, для преобразования в обычный js объект нужно вызвать метод .toObject()
Anonymous
Anonymous
но работало
Daniil
Работало потому у монгус-объекта есть метод toJSON (который в общем то внутри аналогичен методу toObject)
Daniil
А JSON.stringify вызывает этот метод у объектов, которые ему передали и использует то, что он вернул в качестве результата преобразования объекта в json
Daniil
Также если вы делаете запросы через .find/.findOne можно добавить в конце .lean(), что также вернет чистые JS-сущности а не mongoose.Document
Bro
Denis
Пр. Вова
Пишу строку: console.log(MongoClient1.db('test').collection('cities').find());
а в итоге получаю не свои 3 строки данных а огромный объект Cursor {..., в чем может быть проблема?
Пр. Вова
а такие функции как pretty и вовсе не знает.
Aleksandr
await нужно сделать или .then
Aleksandr
Или колбек передать в find
Пр. Вова
а Promise { <pending> } после MongoClient1.db('test').collections() тоже из-за этого?
Aleksandr
Ну да, оно асинхронное же все
Пр. Вова
Ок, щас буду вникать, спасибо.
Пр. Вова
Всем привет, ищу человека который мог бы помочь разобраться с работой асинхронных функций в монге и телеграмме. Желательно Украина. Пишите в личку. Спасибо.
Пр. Вова
в среде node.js
Anonymous
Такой вопрос. Хочу сохранять форматированные посты юзеров (со списками и другими html-тегами) в коллекцию монги (предварительно utf-кодировав). Нормальная практика или я что-то изобретаю?
Stepan
Stepan
Доводилось что-то подобное делать, в принципе жить можно. Только если постов много будет, коллекция весить порядочно будет
Даниил (Onix)
Друзья, всем привет.
Я искал операции для множественного действия. Нашел инсерМэни и апдейтМэни, а saveMany не нашел, он существует?
Aleksandr
есть bulkWrite
Даниил (Onix)
есть bulkWrite
ну да, но булк, как я понимаю, пишет в определенную коллекцию
Даниил (Onix)
а у меня один юзер в две коллекции пишется
Даниил (Onix)
async.parallel([newUser.save, newStudent.save], callback); - оригинальный код
Я хотел заменить на Promise.All или на insertMany
Даниил (Onix)
но ни то, ни другое не обеспечивает нужный смысл
промисы могут сохранить 1 из 2 (мне надо всегда 2 из 2), инсерт не обеспечит апдейт
yopp
Даниил (Onix)
Kinderwond
Всем привет! Собираюсь изучить монгу, подскажите сайты/курсы(бесплатные) с обьяснением работы монгы под капотом
Bro
Mongo University
Bro
Прям на сайте монги
NCR
Здравствуйте. Подскажите пожалуйста, реально ли в query добавить каунтер из другой коллекции?
NCR
Там не знаю, есть некая сущность, у неё есть несколько подчинённых статей и их надо посчитать с другой коллекции
Aleksandr
зависит от того что там конкретно, так-то в общем случае возможно при помощие aggregate и $lookup
NCR
Окей, спасибо
NCR
В гугле забанили, за то что никак не смог сформулировать запрос, потому написал, теперь-то нашёл
Alexander
кто знает,
есть aggregation, и в project перечислен набот полей.
есть ли способ форсированно включить в ответ эти поля, даже если они не определены в документе (null - подойдет)?
Askhat
Ребят. Проблема с mongo. Пришла ошибка
MongoNetworkError
read ETIMEDOUT
Из-за чего такое может быть?
Askhat
И можно ли на ноде сделать переподключение к бд или там как то ноду перезапускать?
Все время делаю руками
Askhat
Добавлял слушателя на on error. Не помогает
Alexander
т.е. есть
$project: { name: 1, some_field: 1 }
для документа
{ name: «myname» }
хочу получить
{name: «myname» some_field: null}
Askhat
Alexander
в принципе да, но это нужно для каждого ключа прописывать. возмонж, есть вариант массовый.
Alexander
но уже спасибо
Askhat
Массовый вряд-ли. Не знаю
Askhat
А сколько у тебя полей?
Askhat
Если их прям совсем много, то чем тебе мешает это программным способом сделать?
Alexander
штук 30, но это не в обдном месте
но не такая проблема завернуть это по аналогии при формировании пайпа
Alexander
Alexander
спасибо
Askhat
В целом можно как бы пайп сам спрограммировать да
Alexander
это - норм.
просто, может быть был какой-то модификатор, про который я не знаю - и тогда это было бы оверинжененрингом
Askhat
Я думаю это было бы ресурсозатратной операцией. И вообще лучше запрос сделать без таких примочек, а потом сформулировать ответ как полагается
Как мне кажется :)
Askhat
Anonymous
Alexander
Alexander
блин, еще тупой вопрос
есть документ
у него embedded массив объектов
т.е. типа
{
name: «alex»,
rooms: [
{ _id: 1, name: «r1» },
{ _id: 2, name: «r2» }
]
}
я делаю на это аггрегацию, и как мне в project, если я хочу вернуть не room.name, а модифицировать его - сослаться на name конкретной итерации
т.е.
{
$project: {
rooms: {
_id: 1,
name: «$name»
}
}
}
на что заменить $name?
yopp
Alexander
не понял
- other_name - в примере нет
- нет уровня вложенности
- если добавить - так не отрабатывает
yopp
Хотя на мой взгляд явное перечисление отсутствующих атрибутов редко является оправданным
yopp
Это же json, отсутсвие атрибута и есть null
Alexander
блин, еще тупой вопрос
есть документ
у него embedded массив объектов
т.е. типа
{
name: «alex»,
rooms: [
{ _id: 1, name: «r1» },
{ _id: 2, name: «r2» }
]
}
я делаю на это аггрегацию, и как мне в project, если я хочу вернуть не room.name, а модифицировать его - сослаться на name конкретной итерации
т.е.
{
$project: {
rooms: {
_id: 1,
name: «$name»
}
}
}
на что заменить $name?
> мысленно замените на любое имя атрибута
сделано во втором и 3 пункте
>в условиях задачи вы этого не указали
из моего сообщения
>у него embedded массив объектов
указано. пример так же есть
>$top_level.second_level
мне нужно не просто 1`/`0, а модифицировать аттрибут. допустим - сделать на нем toString. указав name: { $toString: ‘$sub_attrs.name’ } - я получу там массив (не проверял - должно быть по логике)
>выложите свой кейс на play.db-ai.co
спс за ресурс
https://play.db-ai.co/m/XVCUp7kkgAABTGm1
Vlad
всем привет
ребят, подскажите, пожалуйста
есть ли большой выигрыш по скорости от multiple-запроса через $in (в случае, если передавать массив id-шников), или стучать атомарными запросами (через js map, так как всё-равно он есть в методе)
документов не более 1000
Maksim
Всем привет.
Подскажите пожалуйста, настриваю репликацию вида primary - secondary - arbitr
primary сервер должен ходить на 27017 на secondary и arbitr сервер?
AstraSerg
Askhat
Ребят. Проблема с mongo. Пришла ошибка
MongoNetworkError
read ETIMEDOUT
Из-за чего такое может быть?
И можно ли на ноде сделать переподключение к бд или там как то ноду перезапускать?
Все время делаю руками
Добавлял слушателя на on error. Не помогает
SvPupok
а с сетью проблем нет?
Sardor
Askhat
а с сетью проблем нет?
Да вроде нет. В рабочие дни норм было. На выходных никто ничего не делал, до сервера не было обращений и тут ошибка пошла
Daniil
Askhat
Daniil
Добавьте на другие события
Serhii
Добрый день, ребята нужен совет, использую mongoose как ODM, есть 6 видов юзеров, и у каждого есть свои отличительные поля друг от друга, стоит ли пытатся сделать эти сущности как 1 юзер или лучше создавать для каждого вида юзера через отдельную mongoose модель?
Anonymous
Всем привет вопрос
Anonymous
был сервак с один цпу и монгой, добавил ядро
монга после рестарта подхватит это второе ядро?