Roman
https://mongodb.github.io/node-mongodb-native/3.2/tutorials/projections/
yopp
Roman
Roman
я с этого и начал
Roman
Roman
я пробовал сделать как в примере у них, но он не работает с findOne
Roman
со стороны может показаться, что я тупой и нервный
но действительно, projection испоганили в драйвере
Roman
новый способ как я понимаю работает с курсором
Roman
и как с ним работать не ясно
yopp
вы можете поднимать пыль, а можете попытаться помочь участникам понять вашу проблему.
посмотрите в исходниках, возможно сломали или плохо написали как заменить.
поищите или заведите тикет на https://jira.mongodb.org/projects/NODE/issues
Roman
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
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
Есть кто-нибудь живой?
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 пустое
Владимир Т
Здравствуйте, кто каким способом бэкапит монго?
Denis
Владимир Т
Владимир Т
?
Denis
Владимир Т
просто у меня база 200 гигов, а дамп без сжатия весит под 600
Владимир Т
в чем прикол?
4eburator
Владимир Т
Tar.gz
нет, мне интересно почему дамп весит больше бд?
yopp
в чем прикол?
В компрессии данных при хранении на диске.
Варианты бэкапов:
https://docs.mongodb.com/manual/core/backups/
Владимир Т
yopp
Да. Дамп по-умолчанию не сжимается
Владимир Т
Спасибо
yopp
yopp
Serhii
@dd_bb а как расшарить линк?
yopp
4eburator
Serhii
@dd_bb https://play.db-ai.co/m/XS2a8ZAtYAABLIXo
Serhii
[
{
"chatId": "FAxX_hYtCNI-0MDNEgMQcKzkeUZmOq1vnJo_zopM",
"messages": 2
},
{
"chatId": "5oDnrp0djnTdoNrQNCwxkt3X09Ws0jLtvW5MIkgB",
"messages": 0
}
]
Получится должна такой вот массив, я на jse сделал, но выглядит не красиво, есть ли способ сделать так же запросом монги
yopp
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?