Roman
это монгус?
это официальный драйвер под ноду
Roman
https://mongodb.github.io/node-mongodb-native/3.2/tutorials/projections/
yopp
это официальный драйвер под ноду
с этого и стоит начинать
Roman
я с этого и начал
Roman
я пробовал сделать как в примере у них, но он не работает с findOne
Roman
со стороны может показаться, что я тупой и нервный но действительно, projection испоганили в драйвере
Roman
новый способ как я понимаю работает с курсором
Roman
и как с ним работать не ясно
yopp
вы можете поднимать пыль, а можете попытаться помочь участникам понять вашу проблему. посмотрите в исходниках, возможно сломали или плохо написали как заменить. поищите или заведите тикет на https://jira.mongodb.org/projects/NODE/issues
yopp
yopp
https://mongodb.github.io/node-mongodb-native/3.2/api/Collection.html#findOne
yopp
заведите тикет, в котором попросите их обновить документацию и нормально писать deprecated сообщения, чётко указывая чем заменять или что делать, со ссылками
yopp
на нодовские драйвера вроде дюрана ставили, интересно почему так всё плохо
yopp
а, он теперь компасс пилит, понятно
Roman
заработало спасибо
yopp
ахахахах https://github.com/mongodb-js/mongodb-core
Roman
а на гитхабе не прокатит issue?
yopp
они полностью в jira переехали
yopp
на гитхабе issues помоему везде уже отключили
Roman
блин и шо мне регаться в клауд системе?
Roman
чтобы 1 тикет в жизни туда написать?)
yopp
сомневаюсь что один :)
Roman
я думал монгу миллионы юзают
Roman
и никто не задумался как делать в последнем драйвере projection
yopp
ну нода != монга
yopp
документация конечно отвратительная, но ответ на ваш вопрос лежал в api документации к collection.findOne
yopp
сообщение об депрекации написано плохо
Roman
Вопрос по change stream, он срабатывает по любому изменению в коллекции?
Roman
Есть возможность привязать к доку?
Roman
видимо по match
Roman
https://docs.mongodb.com/manual/reference/operator/aggregation/match/#pipe._S_match
yopp
https://docs.mongodb.com/manual/reference/operator/aggregation/match/#pipe._S_match
yopp
да
Roman
спасибо!
Roman
монга шикарна
yopp
change stream это обертка вокруг оплога и tailable курсоров
yopp
учтывайте это, если вам нужен resume
yopp
так как окно в течени которого можно восстановить позицию будет равно oplog window
4eburator
можете подсказать насчет где я ошибаюсь {"$or" : [ {"sent.setId": { "$eq": 1005 } ,"sent.impTime":{ "$not": { "$gt": 1563215603 -2678400 }}}, {"sent.setId": { "$not":{ "$eq": 1005 }}} ]},
Roman
ну мне как конечному юзеру удобно в любом случае, вопрос как сильно нагружать будут базу многочисленные change стримы
Roman
хочу использовать для long polling в веб
yopp
никак
Roman
ну и отлично, и видимо надо будет закрыть как то этот стрим, когда по race у меня будет изменение или таймаут
Roman
(js promise race)
4eburator
Есть кто-нибудь живой?
Oleg
Есть кто-нибудь живой?
Одни мертвецы кругом.
4eburator
можете подсказать что неправельно в этом селекте? Я пытаюсь выбрать где нету setId=1005 или он имеется но дата ниже заданой {"$or" : [ {"sent.setId": { "$eq": 1005 } ,"sent.impTime":{ "$not": { "$gt": 1563215603 -2678400 }}}, {"sent.setId": { "$not":{ "$eq": 1005 }}} ]},
Serhii
Ребята, помогите составить квери пожалуйста, есть несколько сущностей под названием Chat: { chatId: ‘’ messages: [{ readBy: [“someId”] }, { readBy: [] }] }, Нужео вернуть каунтер месседжей ([ chatId: messages: 1]), в которых поле readBy пустое
Владимир Т
Здравствуйте, кто каким способом бэкапит монго?
Владимир Т
mongodump)
вы сжимаете дамп?
Denis
вы сжимаете дамп?
Нет. Я делаю дамп, а потом его сжимаю при помощи tar
Владимир Т
?
Denis
а почему не сразу —gzip
Потому-что так удобней было.
Denis
а почему не сразу —gzip
Хотите сжимайте.
Владимир Т
просто у меня база 200 гигов, а дамп без сжатия весит под 600
Владимир Т
в чем прикол?
Владимир Т
Tar.gz
нет, мне интересно почему дамп весит больше бд?
yopp
в чем прикол?
В компрессии данных при хранении на диске. Варианты бэкапов: https://docs.mongodb.com/manual/core/backups/
Владимир Т
В компрессии данных при хранении на диске. Варианты бэкапов: https://docs.mongodb.com/manual/core/backups/
т.е сама база у нас в компрессии находится, а когда делаем ее дамп он получается в 2-3 раза больше базы?
yopp
Да. Дамп по-умолчанию не сжимается
Владимир Т
Спасибо
Serhii
@dd_bb а как расшарить линк?
yopp
@dd_bb а как расшарить линк?
Сверху справа кнопка
4eburator
Положите пример на play.db-ai.co
Ок спосибо пару минут...
Serhii
@dd_bb https://play.db-ai.co/m/XS2a8ZAtYAABLIXo
Serhii
[ { "chatId": "FAxX_hYtCNI-0MDNEgMQcKzkeUZmOq1vnJo_zopM", "messages": 2 }, { "chatId": "5oDnrp0djnTdoNrQNCwxkt3X09Ws0jLtvW5MIkgB", "messages": 0 } ] Получится должна такой вот массив, я на jse сделал, но выглядит не красиво, есть ли способ сделать так же запросом монги
Yʉri 🇺🇦
🤔
Anonymous
Serhii
@dd_bb спасибо) сильно
Serhii
@dd_bb const chats = await Chat.aggregate([ { $project: { 'messages': { '$reduce': { 'input': '$messages', 'initialValue': 0, 'in': { '$cond': { 'if': { '$$this.readBy': { $elemMatch: userId } }, 'then': { '$add': [ '$$value', 1 ] }, 'else': '$$value' } } } } } } ]); можно переписать похожим образом, только в случае если массив включает конкретный айдишник, те если айдишник содержится мы делаем месседж +1, нет не добавляем ничего, и еще подскажи пожалуйста как работает оператор $$this?