
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
спасибо

yopp
10.10.2018
09:03:59

Nick
10.10.2018
09:04:00

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

Nick
10.10.2018
09:04:48

yopp
10.10.2018
09:05:34
Время можно использовать как версию, при условии что оно будет одинаковое для всех документов из одной выгрузки
Заводите поле version, делаете по нему индекс и заливаете все новые документы с одной версией. В приложении ко всем запросам добавляете это поле. После завершения загрузки новой выгрузки, делаете так, чтоб приложение использовало новую версию в запросе. Можно для этого завести отдельную коллекцию с версиями
У вас небольшой объём данных, это самый оптимальный способ. И не будет простоя

Mr_Babrums.bin
10.10.2018
09:10:59


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

Mr_Babrums.bin
10.10.2018
10:18:37

Иван
10.10.2018
10:20:41

Vova
10.10.2018
10:22:35

Иван
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
10:29:01


Constantin
10.10.2018
16:44:04
Если tasks — это массив — то, $ для проекции. $pull — для удаления, $push для добавления
Вот тут подробно все операторы, которые вам нужны https://docs.mongodb.com/manual/reference/operator/update-array/
Приветули!)
Подскажите плиз, у меня есть список пользователей, для каждого нужно сохранять и обновлять задачи которые приходят:
есть коллекция users, в которой есть поле "tasks":
{'_id':123456,
'phone': 0202020202,
'tasks':[{'_id': 12345,
'name': 'задача1'},
{'_id': 54321,
'name': 'задача2'}]
Мне нужно добавлять\удалять\изменять новые словари в этом поле ("tasks")
Просто суть в том, что одна задача может быть у нескольких пользоваетелей, и по каждому пользователю нужно вести свой учёт (выполнил ли задачу, отменил, и тд.)
Можно ли это делать методом db.coll.update() ??
Или лучше создать еще одну коллекцию для задач?
Судя по всему tasks — все же массив

Иван
10.10.2018
17:08:59

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

AstraSerg
10.10.2018
17:42:03

nexxtmedia
10.10.2018
17:44:58
вложенные массивы в каком виде?
ссылки на другую коллекцию - создать коллекцию чисто под ответы на комментаррии?
смысл какой в этом?

AstraSerg
10.10.2018
17:46:46

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

Google

nexxtmedia
10.10.2018
17:47:39
и как быть с ответом на ответ к комментарию?? еще один массив вкладывать?))
а как быть с ответом на ответ к кответу к комментарию?
по любому должна быть практика как это должно быть устроено
по примеру реддит, если надо образец
там у них в данных светится типо parentID

AstraSerg
10.10.2018
17:49:28

nexxtmedia
10.10.2018
17:49:43

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

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

Иван
10.10.2018
17:57:42

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
Типа
const { ObjectId } = require('mongodb')
const id = ObjectId(mealId)
db.collection...find({ _id: id })

Bodya
11.10.2018
08:28:55

Mr_Babrums.bin
11.10.2018
08:29:50

Bodya
11.10.2018
08:30:41

Mr_Babrums.bin
11.10.2018
08:31:28

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

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

Constantin
11.10.2018
18:10:58

Banschikov
11.10.2018
18:12:52

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

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

Google

Constantin
11.10.2018
18:21:44

Banschikov
11.10.2018
18:22:08

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

Banschikov
11.10.2018
18:23:06

Constantin
11.10.2018
18:28:24

Banschikov
11.10.2018
18:28:35

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