Daniyar
ну и с пагинацией
Daniyar
я смогу потом как-то работать со старыми данными?
Daniil
Если данные есть в коллекции, то вы можете с ними работать) Но при таких данных даже при относительно небольшой нагрузке их может набраться очень много, что затруднит выборки очевидно
Daniil
Но в целом при наличии индексов, нормальном железе и не без огромной нагрузки на запись проблем не будет с выборками по всем комбинациям
Denis 災 nobody
кто как автоматом расктывает кластер?
Anonymous
Здравствуйте, как вывести с базы уникальные значения (без повторов) использую mongoose?
Anonymous
distinct выводит только это поле, а мне надо полностью док
Anonymous
с группами можно подробней, пожалуйста? например выбрать все категории по одному разу
Mykola 🤷🏼‍♀️
уникальные документы нужны? Тогда group по всем полям должен работать
Anonymous
выводит только поле, а надо всю запись (название, тег к примеру) а уникальность только по одному полю
Mykola 🤷🏼‍♀️
distinct выводит только это поле, а мне надо полностью док
а, вывести док с уникальным полем. Тогда group по одному полю, там в доке есть примеры наглядные
Anonymous
Mykola 🤷🏼‍♀️
Post.find().select("title category").exec(), куда групп объект передать ?
model.aggregate([ { $group: { _id: '$fieldToUnique', doc: { $first: '$$ROOT' } } }, { $replaceRoot: { newRoot: '$doc' } } ]) Вот такое сделает поле уникальным и возьмёт первые попавшиеся документы из группы
$continue$
Всем привет, почему может не проходить авторизация под созданным юзером? Создаю так: db.createUser( { user: "user", pwd: "password", roles: [ { role: "readWrite", db: "db" }, { role: "clusterMonitor", db: "admin" } ] } ) Логи: 2020-05-05T02:02:30.256+0300 I NETWORK [conn217] received client metadata from 127.0.0.1:53184 conn217: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "4.0.18" }, os: { type: "Linux", name: "PRETTY_NAME="Debian GNU/Linux 9 (stretch)"", architecture: "x86_64", version: "Kernel 4.9.0-12-amd64" } } 2020-05-05T02:02:30.257+0300 I ACCESS [conn217] Supported SASL mechanisms requested for unknown user 'nodebb@admin' 2020-05-05T02:02:30.257+0300 I ACCESS [conn217] SASL SCRAM-SHA-1 authentication failed for db on admin from client 127.0.0.1:53184 ; UserNotFound: Could not find user db@admin 2020-05-05T02:02:30.257+0300 I NETWORK [conn217] end connection 127.0.0.1:53184 (0 connections now open) Юзер создан, смотрел через show users "_id" : "test.nodebb", "userId" : UUID("f7036032-760f-458d-9a5c-ab74ec52287b"), "user" : "user", "db" : "db", "roles" : [ { "role" : "readWrite", "db" : "nodebb" }, { "role" : "clusterMonitor", "db" : "admin" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] И, кстати почему он пытается обратится к db@admin?
Roman
Как загрузить dump базы?
Roman
То есть у меня есть папка (дамп базы) и мне нужно ее загрузить в свою базу, чтобы посмотреть структуру. Как мне это сделать?
Roman
mongodump/mongorestore
Мне нужно всю базу, а не только конкрентный файл
Daniil
С помощью этих утилит можно работать как с отдельными коллекциями так и со всей базой
Daniil
mongorestore —db dbname /dump Восстановить все коллекции из директории dump mongodump —db dbname Сделать дамп всей базы (несколько файлов содержащих данные коллекций)
Daniil
Ещё есть mongoexport/mongoimport
Daniil
Для экспорта/импорта в/из монги в форматах JSON/CSV
Daniil
Но эти утилиты больше подходят если вы хотите работать с данными из монги где то в другом месте или загрузить какие то данные в монгу массово
Denis 災 nobody
кто как автоматом расктывает кластер?
Dmitry
кто как автоматом расктывает кластер?
А ты как пытаешься? В ansible плохо с этим? В целом хочу потрогать percona-server-mongodb-operator. Но пока руки не дошли
Denis 災 nobody
cloudformation же
Denis 災 nobody
аналог - терраформ
Denis 災 nobody
суть в том что там ноды в autoscale group
Denis 災 nobody
не получится 1 раз выкатить кластер, он может сам заменить ноду например
Dmitry
cloudformation же
у amazon разве нет manage mongodb?
Denis 災 nobody
нет
Denis 災 nobody
есть аналог, примерно совместимый по апи, но в нашем случае это "примерно" не подходит
Denis 災 nobody
с год назад мне перечисляли чего там нет и что не так, но всё забылось уже
Dmitry
не получится 1 раз выкатить кластер, он может сам заменить ноду например
Так там один фиг нужно какой-нибудь шард ключ выбрать. То есть автоматику навесить там будет проблемно. Да и в целом, там же при автоскейле нового шарда, данные, которые в него переедут, будут удалятся со старых. А это дорогая операция, и в кластере ее никак нельзя контроллировать. И можно этим автоскейлом весь кластер положить. Все зависит от нагрузок конечно, но если ты уже говоришь про sharded кластер, то они у тебя не маленькие
Vadym
Добрый день, запускаю функцию ExecutableMongoScript (Spring Data), которая внутри использует eval. В итоге БД пишет 'not authorized on db to execute command { $eval ...'. Почитал, вызов Eval требует много прав. Как правильно вызывать скрипты в монго? Как это делать в 4,2+ где eval удален? Спасибо!
Dmitry
суть в том что там ноды в autoscale group
в случае готового кластера и уже выбранного ключа шардирования, то добавить новый шард это - запустить ec2 в твоем случае, с готовыи ключом (security.keyFile). А затем добавлением его в кластер в mongos (sh.addShard). Ну или поднятия трех ec2, делаем из них replicaset, а потом добавляем в кластер, если хотим отказоустойчивость шарда. А вот если мы хотим соскейлится вниз... По идее это можно автоматизировать. Но мне кажется такая история не про mongodb, и можно огрести проблем больше чем хотелось.
Speedy
как в монго обращаться к определенному элементу массива?
Speedy
Speedy
а какие самые обиходные способы есть?
Mykola 🤷🏼‍♀️
это агрегация?
Speedy
это инсерт
Mykola 🤷🏼‍♀️
зачем при инсерте обращаться к элементу массива
Speedy
скрин инсерта имеею ввиду
Speedy
пишу просто запрос
Speedy
и надо что-то такое
Speedy
{$where: 'this.array.get(0)=2'}
Mykola 🤷🏼‍♀️
если запрос - обычный find и занечение массива - обычный тип (не документ), то просто вот так: arrayField: “value”
Mykola 🤷🏼‍♀️
будто бы никакого массива нет
Mykola 🤷🏼‍♀️
вернутся документы, у которых в массиве есть хоть одно совпадение
Speedy
спасибо большое
Speedy
еще мелкий вопрос как не выписывать ид?
Speedy
где-то помню ид на 0 нужно было ставить, вопрос где
Mykola 🤷🏼‍♀️
в проекции - вторым параметром { _id: 0 }
Speedy
что в этом проеция?)) сори за такие вопросы, просто на экзе нет времени гуглить
Speedy
все вдуплил
Speedy
spasibo
Влад
Здравствуйте, чем отличаются схемы от моделей? Где можно подробно почитать?
Vadym
извне через mongo blabla.js
Это вызов файла-скрипта? Для этого не нужно такие же права как для Eval? У меня есть скрипт, который обновляет коллекции, как это правильно пишут? В реляционных БД для этого есть хранимые процедуры...
Nick
Это вызов файла-скрипта? Для этого не нужно такие же права как для Eval? У меня есть скрипт, который обновляет коллекции, как это правильно пишут? В реляционных БД для этого есть хранимые процедуры...
права нужны на операции, которые вы будете выполнять в скрипте, по идее так же как и в eval. Дорабатывайте свой скрипт в соответствии с https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/
Daniyar
ребят. сколько будет стоить примерно размещение node.js/mongo проекта на хороший сервер?
Vova
Vova
хороший сервер - очень плавающее понятие
Daniyar
я в серверах не очень разбираюсь
Daniyar
просто главное чтоб сервер не тупил при использовании
Daniyar
трафик средний если
Vanya
А какая нагрузка предполагается?
Daniyar
как высчитывать?
Daniyar
одновременный онлайн?
Vanya
Ну типа того
Daniyar
нуу.. не знаю.. для частного бизнеса пока что