
Юлиан
05.09.2018
10:48:43
Всем привет! Подскажите пожалуйста, удобный GUI для работы с mongodb. В сети искал, понравилась связка DataGrip + MongoDB Plugin, но может есть более целостное решение?

Slava
05.09.2018
10:51:00
https://studio3t.com

Юлиан
05.09.2018
10:54:20
?Спасибо большое, то что нужно! ?

Google

another
05.09.2018
11:03:15
хешируйте полученное от пользователя, и уже после этого ищите в базе
Там база выдала в credentials и соль и кол-во итераций и сервер-кей, это всё я так понимаю относится к используемым алгоритмам ['SCRAM-SHA-1', 'SCRAM-SHA-256'], и что мне теперь что бы сравнить пароли нужно подключать passlib.readthedocs.io/en/stable/lib/passlib.hash.scram.html и делать вот это вот всё?
Использовать это для пороверки логина и пароля? :
>>> client.the_database.authenticate('user',
... 'password',
... source='source_database')
Т.е мне не нужно подключение к базе, мне нужно проверить логин и пароль пользователя созданного для моего приложения, если они совпадают с теми что в базе для этого пользователя то отдать JWT токен

AstraSerg
05.09.2018
11:21:20

another
05.09.2018
11:22:37

Bo0m4ik
05.09.2018
11:41:18
добрый день! недавно начал разворачивать кластер на монго и в результате хотел установить работу mongod в качетсве демона, но после того как переписал конфиг демон не стартует. подскажите плз, если какие то особенности в этой задаче?
конфиг:
*
replication:
replSetName: "rset"
net:
bindIp: 0.0.0.0
port: 13101
storage:
dbPath: /root/mongodb/data/rset
systemLog:
destination: file
path: /root/mongodb/logs/mongod.log
logAppend: true
*
при запуске с аргументом config экземпляр запускается нормально

Slava
05.09.2018
12:34:38
а какие ошибки выдает?

AstraSerg
05.09.2018
12:45:55

Bo0m4ik
05.09.2018
13:03:25

Vova
06.09.2018
05:28:12
Папка для дб создана? Права ей дали?
Которая /root/mongodb/data

Google

Vova
06.09.2018
05:29:32
Вообще есть логи, читай там /root/mongodb/logs/mongod.log

Bo0m4ik
06.09.2018
13:09:48

AstraSerg
06.09.2018
16:31:49

Олег Иванович
07.09.2018
05:03:56
всем привет
подскажите, как для монги выставить часовой пояс?
версия 4.х
или чтобы брала данные с хост машины/контейнера

AstraSerg
07.09.2018
05:32:56
Обжект — это другой доккмент что ли?

Nick
07.09.2018
06:36:45

Олег Иванович
07.09.2018
06:49:35
а зачем вам часовой пояс?
немного странный вопрос
у нас данные на времени завязаны, и нам нужен определеннй часовой пояс в датах, которые сама БД прописвает

Nick
07.09.2018
06:50:34
если у вас все завязано на даты, то зачем вы отдаете это на откуп непонятной бд? это должно делат ьприложение
тем более это делает драйвер а не бд

Олег Иванович
07.09.2018
06:51:46
в данном случае, драйвер использует функционал самой БД, все ссылки на доки в монгу

Nick
07.09.2018
06:52:18
а как именно вы проставляете время через какой оператор?

Олег Иванович
07.09.2018
06:52:58
пользуюсь mongoose
там в схеме объяляется

Nick
07.09.2018
06:53:24
т.е. вы используете драйверозависимое нечто, а не то что предлагает монга
вообщем ваш вопрос про таймзоны отправляется к монгусу

Олег Иванович
07.09.2018
06:54:27
как написал выше, mongoose ссылается на доки в монгу

Nick
07.09.2018
06:54:52
киньте этот момент из доки, а то может я чтото путаю

Олег Иванович
07.09.2018
06:54:54
+ я хотел настроить часовой пояс на уровне БД, а не драйвера
сейчас найду

Google

Олег Иванович
07.09.2018
06:58:25
немного неверно ранее написал ... ответ про таймзоны я нашел в репозитории драйвера
https://github.com/Automattic/mongoose/issues/3739#issuecomment-169394514
там ссылка на доку в монгу
поскольку монга лежит в докере, и часовой пояс должен быть изменен в рамках этого контейнера, то драйвер по большому счету тут не при чем
изменить нужно на уровне самой БД

AstraSerg
07.09.2018
07:00:25

Nick
07.09.2018
07:00:39
Вот так бы и написали, что вам нужно хранить время с таймзоной. Монга этого не умеет

Олег Иванович
07.09.2018
07:01:05
мне не обязательно время хранить с таймзоной
мне важно чтобы само время соответстовало определенному часовому поясу

AstraSerg
07.09.2018
07:02:28

Олег Иванович
07.09.2018
07:02:37
да
как-то так

Nick
07.09.2018
07:02:51
Нет, монге фиолетово на таймзоны, хоть как вы их настраивайте на сервере с бд, возьмется время, полученное в момент подготовки запросп в драйвере

AstraSerg
07.09.2018
07:03:25
да
имхо, это не задача БД...

Nick
07.09.2018
07:03:38
Если вам надо преобразовывать, то ищите либо спец функции у драйвера, либо ручками

Олег Иванович
07.09.2018
07:04:08

Nick
07.09.2018
07:05:02

Олег Иванович
07.09.2018
07:05:48
еще раз повторюсь, мне не нужно хранить таймзоны, мне нужно время под определенный пояс

Nick
07.09.2018
07:06:20
Еще раз, это не к монге, это к приложению и драйверу
Вот так вот устроена монга, это вам не sql с полноценным timestamp типом данных

Олег Иванович
07.09.2018
07:07:31
ладно ... всем спасибо

invzbl3
07.09.2018
09:36:06
Используя Java Driver, ребят, можно заменить полностью один док на другой, проверяя на совпадение поле?
Вот так высчитываю кол-во док-ов:
long count = collection.count();
Потом заменяю полностью один док на другой (не изменяя поле _id) по полю title:
collection.replaceOne(eq("title", title),
new Document("title", title)
.append("url", url)
.append("img", img)
.append("price", price));

Google

invzbl3
07.09.2018
09:37:20
мне кажется, что я неправильно заменяю док, используя replaceOne метод, потому что в примерах монги, изменялся текст значения поля в виде текста, а я пытаюсь по переменной String
я хочу все присутствующие док-и бд заменить на другие, не трогая _id
чтобы не происходило в будущем переполнение кластера
1) https://docs.mongodb.com/manual/tutorial/update-documents/#update-documents, здесь вручную изменяется текст значения поля
2) http://mongodb.github.io/mongo-java-driver/3.8/driver/tutorials/perform-write-operations/
и здесь тоже


AstraSerg
07.09.2018
09:47:45
Используя Java Driver, ребят, можно заменить полностью один док на другой, проверяя на совпадение поле?
Вот так высчитываю кол-во док-ов:
long count = collection.count();
Потом заменяю полностью один док на другой (не изменяя поле _id) по полю title:
collection.replaceOne(eq("title", title),
new Document("title", title)
.append("url", url)
.append("img", img)
.append("price", price));
Не совсем понятно, что вы хотите, но может $set вам поможет: https://docs.mongodb.com/manual/reference/operator/update/set/

invzbl3
07.09.2018
13:19:13

yopp
07.09.2018
13:19:27
Точнее возможно, если вы знаете все поля в документе, тогда вы можете их удалить/поменять через $set, $unset
но в этом нет никакого смысла
если вы хотите новый документ — создайте новый документ
а старый удалите

invzbl3
07.09.2018
13:21:51
Понял, спасибо. Думал, методом replaceOne можно заменить весь документ не изменяя _id поле

yopp
07.09.2018
13:26:26
ого. Да, есть replaceOne (https://docs.mongodb.com/manual/reference/method/db.collection.replaceOne/). Это новшество с 3.2.
Не знал
Тогда в чём проблема?
а главное, зачем вам это?

invzbl3
07.09.2018
13:27:14
Используя Java Driver, ребят, можно заменить полностью один док на другой, проверяя на совпадение поле?
Вот так высчитываю кол-во док-ов:
long count = collection.count();
Потом заменяю полностью один док на другой (не изменяя поле _id) по полю title:
collection.replaceOne(eq("title", title),
new Document("title", title)
.append("url", url)
.append("img", img)
.append("price", price));
Проблема, что у меня не заменяются документы в таком формате хотя ошибок нет

yopp
07.09.2018
13:28:43
убедитесь что у вас по переданному условию find что-то возвращает
вы там пишете про «переполнение кластера». какую проблему вы решаете?

invzbl3
07.09.2018
13:50:26

Google

invzbl3
07.09.2018
13:51:29
Чтобы не произошло переполнение документов в кластере

yopp
07.09.2018
13:55:04
зачем вам нужен старый id?
«переполнение документов в кластере» это практически недостижимое событие

invzbl3
07.09.2018
13:56:59
В моем случае 512 мб заняв документами объем

yopp
07.09.2018
13:57:47
а, вас беспокоит не количество документов, а объём базы
тогда ещё раз спрошу: зачем вам старый id?

invzbl3
07.09.2018
13:59:09