@MongoDBRussian

Страница 328 из 342
Nick
10.10.2018
08:59:45
в общем случае вы не сможете уверенно привязать его ко времени насервере приложения

Mr_Babrums.bin
10.10.2018
09:00:05
звучит как вызов

Nick
10.10.2018
09:00:30
ну и оно не меняется при апдейте, в вашем случае оно так и вообще не подходит

Mr_Babrums.bin
10.10.2018
09:01:37
так если я буду не апдейтить поля а заливать новые документы поверх, а потом удалять старые...да, лучше по $lt удалять, тогда поле сделаю

Google
Mr_Babrums.bin
10.10.2018
09:01:39
спасибо

Nick
10.10.2018
09:04:00
Нет, конечно. Но оно и не должно быть мгновенным для availability. Ну, при условии, что данные помимо переливки не модифицируются
конечно мое высказывание слегка категоричное и все зависит от приложения и как оно работает с данными и какие требования предъявляются. можно хоть и вообще очищать таблицу перед обновлением

yopp
10.10.2018
09:04:05
Мы тут это уже обсуждали

Nick
10.10.2018
09:04:48
Лучше поле version
точно, пытался вспомнить что чтото другое было а не просто время

yopp
10.10.2018
09:05:34
Время можно использовать как версию, при условии что оно будет одинаковое для всех документов из одной выгрузки

Заводите поле version, делаете по нему индекс и заливаете все новые документы с одной версией. В приложении ко всем запросам добавляете это поле. После завершения загрузки новой выгрузки, делаете так, чтоб приложение использовало новую версию в запросе. Можно для этого завести отдельную коллекцию с версиями

У вас небольшой объём данных, это самый оптимальный способ. И не будет простоя

Little
10.10.2018
09:19:49
всем привет. Ребят, есть архитектурный вопрос. Имеется маленький блокчейн, который я пытаюсь спарсить. В блокчейне есть операции, которые собираются в транзакции, которые собираются в блоки. Я подумал, что было бы неплохо выделить одну коллекцию под блоки, в которой каждый объект был бы представлен как информация о блоке + массив ObjectID транзакций в этом блоке. Далее в моделе для транзакций я подумал хранить объекты, содержащие информацию по транзакции + массив ObjectID, операций, входящих в эту транзакцию + ссылку на блок, к которому эта транзакция привязана. И на каждуо операцию я сделал отдельную коллекцию. Я подумал, что если мне, например, нужно вытащить список определенных операции по определенному аккаунту (допустим "лайки", которые поставил этот пользователь), я просто пробегусь по модели с лайками и вытащу все, которые относятся к этому пользователю. А вот как всё это сделать красиво и по уму я чот не знаю. Если есть советы и предложения, то пожалуйста. Любая помощь приветствуется

как лучше сделать для максимизации скорости на чтение и лёгкости в написании запросов?

Иван
10.10.2018
10:08:57
Приветули!) Подскажите плиз, у меня есть список пользователей, для каждого нужно сохранять и обновлять задачи которые приходят: есть коллекция users, в которой есть поле "tasks": {'_id':123456, 'phone': 0202020202, 'tasks':[{'_id': 12345, 'name': 'задача1'}, {'_id': 54321, 'name': 'задача2'}] Мне нужно добавлять\удалять\изменять новые словари в этом поле ("tasks") Просто суть в том, что одна задача может быть у нескольких пользоваетелей, и по каждому пользователю нужно вести свой учёт (выполнил ли задачу, отменил, и тд.) Можно ли это делать методом db.coll.update() ?? Или лучше создать еще одну коллекцию для задач?

Mr_Babrums.bin
10.10.2018
10:11:25
Я бы коллекцию для задач сделал и отмечал бы там сотрудников которые выполнили задачку каким-нибудь флагом, + рефу на обжАйди сотрудника там же хранил бы. И сотруднику закинул бы рефу на задачу

Google
Иван
10.10.2018
10:15:07
Я бы коллекцию для задач сделал и отмечал бы там сотрудников которые выполнили задачку каким-нибудь флагом, + рефу на обжАйди сотрудника там же хранил бы. И сотруднику закинул бы рефу на задачу
тобишь в самой задаче хранить список сотрудников кому она открыта + флаг тому кто выполнил? можно ли как то обновлять\удалять\добавлять словари в ключ?? просто я так понимаю метод .update - работает по ключу, а мне нужно в этом ключе найти и апдейтнуть один из словарей?

Иван
10.10.2018
10:20:41
Кажется только если весь аррэй менять и полностью обновлять. Надо методы смотреть, я на обеде сорян)
вот, мне тоже кажется что нужно грубо говоря работать со всем списком словарей, (достать — обновить— залить в бд)

Иван
10.10.2018
10:22:59
Операторы почитай
спасибо, щас почитаю)

Операторы почитай
но оператором я смогу сделать выборку, но не вижу варианта апдейтнуть 1 словарь из списка словарей в одном ключе так понимаю что апдейтнуть можно только перезаписав весь ключ(а мне нужно только 1 словарь из списка)

Peter
10.10.2018
10:27:31
Запущена mongodb на ubuntu на aws, случайно удалил колекцию…. можно ли востановить данные?

Alexander
10.10.2018
10:28:06
No

Иван
10.10.2018
17:08:59
Судя по всему tasks — все же массив
Спасибо) да, массив)) но оно ведь всеравно будет перезаписывать весь ключ?

nexxtmedia
10.10.2018
17:40:15
подскажите, как организовать данные в случае "комментариев к комментариям"?

AstraSerg
10.10.2018
17:42:03
Спасибо) да, массив)) но оно ведь всеравно будет перезаписывать весь ключ?
Если массив, поправьте пример. Там должны быть [] в валью для ключа tasks

подскажите, как организовать данные в случае "комментариев к комментариям"?
Влаженные массивы если короткие, или ссылки на другую коллекцию

nexxtmedia
10.10.2018
17:44:58
вложенные массивы в каком виде?

ссылки на другую коллекцию - создать коллекцию чисто под ответы на комментаррии?

смысл какой в этом?

AstraSerg
10.10.2018
17:46:46
смысл какой в этом?
Смысл в том, что максимальный размер документа 16 мегабайт

nexxtmedia
10.10.2018
17:47:00
по мне так надо делать это одной коллекцией - Comments. при этом хранить во вложенном массиве не сам контент, а айдишники комментариев-ответов. вопрос - как это связать все?

Google
nexxtmedia
10.10.2018
17:47:39
и как быть с ответом на ответ к комментарию?? еще один массив вкладывать?))

а как быть с ответом на ответ к кответу к комментарию?

по любому должна быть практика как это должно быть устроено

по примеру реддит, если надо образец

там у них в данных светится типо parentID

AstraSerg
10.10.2018
17:49:28
а как быть с ответом на ответ к кответу к комментарию?
А, так у вас не известно заранее сколько комментов и на что?

AstraSerg
10.10.2018
17:51:39
Почитайте здесь https://docs.mongodb.com/ecosystem/use-cases/storing-comments/ может это то что вам нужно

nexxtmedia
10.10.2018
17:53:25
спс, почитаю. если кто-то сталкивался с такой задачей, напишите плз

Bodya
11.10.2018
07:47:32
У меня запрос _id:req.params.typeId meals.id: req.params.mealId видает null

req.params проверил

Mr_Babrums.bin
11.10.2018
08:11:16
У меня запрос _id:req.params.typeId meals.id: req.params.mealId видает null
Ещё не разобрался как это работает, но у меня на Node.js для поиска по _id нужно импортировать из пакета с драйвером метод ObjectId и конвертировать строки в ObjectId, тогда находит

Типа const { ObjectId } = require('mongodb') const id = ObjectId(mealId) db.collection...find({ _id: id })

Mr_Babrums.bin
11.10.2018
08:29:50
Там meals._id
Мне как-то всё равно, главное мысль донести

Bodya
11.10.2018
08:30:41
Мне как-то всё равно, главное мысль донести
У меня без конвертирование в ObjectID работает

Mr_Babrums.bin
11.10.2018
08:31:28
У меня без конвертирование в ObjectID работает
Если работает то почему ничего не находит? :)

Bodya
11.10.2018
08:31:49
Google
Bodya
11.10.2018
08:32:18
Наверное ето потому, сто я юзаю монгус

Тупой Т9

Mr_Babrums.bin
11.10.2018
08:32:50
Находит
Так если нул значит нет ничего по критериям

Наверное ето потому, сто я юзаю монгус
Ну монгусь сам конвертит, да

Yaroslav
11.10.2018
10:06:27
Товарищи привет, подскажите пожалуйста в чем может быть проблема , реплика сет не собирается . секнодари ноды не могут авторизоваться у primary UserNotFound: Could not find user test@admin Юзер такой создан rs0:PRIMARY> db.getUser("test") { "_id" : "admin.test", "user" : "test", "db" : "admin", "roles" : [ { "role" : "root", "db" : "admin" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] } В чем проблема не могу понять

Artem
11.10.2018
15:46:16
а security file создан и один и тот же на всех нодах?

Zaur
11.10.2018
17:25:36
Предыдущий вопрос неправильный, он отменяется?

Yaroslav
11.10.2018
17:35:03
а security file создан и один и тот же на всех нодах?
эх поздно ты написал , сам до этого дошел когда начал копаться , содержание оказалось разным , но в любом случае спасибо за ответ )))

Banschikov
11.10.2018
18:06:18
Всем привет! А есть какая-нибудь mongo админка, которую можно запустить в докере и настраивать доступы к коллекциям и БД?

Banschikov
11.10.2018
18:12:52
А чем стандартные на десктопе не устраивают?
Эмм, у меня в kubernetes кластер. И там монга

Constantin
11.10.2018
18:13:47
Я не силен в кубернетес, но разве к монге в нем запущенной, нельзя подключиться из вне кубернетеса?

Banschikov
11.10.2018
18:14:21
Нет. Только форвардинг портов делать или vpn пробрасывать.

Constantin
11.10.2018
18:14:58
Ну это я и имел в виду, вывести порт наружу с авторизацией, и подцепиться Атласом или Монгохабом

Banschikov
11.10.2018
18:17:01
Это не всегда удобно.Но вопрос не про это. Монгохаб бесплатный клиент?

Constantin
11.10.2018
18:17:18
Я так понимаю, вы хотите phpmyadmin, только для MongoDB?

Alexander
11.10.2018
18:18:56
а зачем тогда компас?

Banschikov
11.10.2018
18:19:22
Я так понимаю, вы хотите phpmyadmin, только для MongoDB?
Да. Сейчас использую mongo-express, но там все базы открыты, а хотелось бы разграничения использовать и авторизацию

Constantin
11.10.2018
18:19:43
Я кроме mongo-express ничего нормального не слышал, так чтобы еще и не совсем мертвое. Думаю остальное сильно хуже будет по функционалу.

Google
Constantin
11.10.2018
18:21:44
Да. Сейчас использую mongo-express, но там все базы открыты, а хотелось бы разграничения использовать и авторизацию
Вы можете, наверно создать пользователей N-количество, разграничить их правами, и поднимать отдельные инстансы под них

Constantin
11.10.2018
18:22:42
Или использовать как мидлвару его, и написать небольшое NodeJS приложение, где по разным роутам будет доступ для разных пользователей

Да проще наверное тогда с десктопной версией
Наверно, думаю большинство так и делает

Banschikov
11.10.2018
18:23:06
Да проще наверное тогда с десктопной версией
Я создам пользователей с доступами к определенным базам.

Constantin
11.10.2018
18:28:24
Да проще наверное тогда с десктопной версией
http://mongodb-tools.com может тут, что-то приглянется? https://nosqlclient.com, например.

Yaroslav
11.10.2018
18:35:37
@f545_j_43g43u_jer3tfgu32fh3333 https://hub.docker.com/r/mongoclient/mongoclient/

Страница 328 из 342