@MongoDBRussian

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

Юлиан
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 токен

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
т.е нужно использовать passlib И сравнивать полученное значение с storedKey возвращенный базой?
Да, идея в этом. Какие именно способы получения хеша будете использовать - это решать вам.

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
Вообще есть логи, читай там /root/mongodb/logs/mongod.log
действительно косяк был в правах, что породило вопрос: какие директории использует mongod для запуска? по моим наблюдениям: файл лога, файл конфига ну и директория бд, или я что то упустил?

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

версия 4.х

или чтобы брала данные с хост машины/контейнера

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

Олег Иванович
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
один и тот же в данном случае, GTM+3
а, то есть приложение будет писать в БД с разными зонами, а БД должна перевести их в gmt+3

Олег Иванович
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
Нет, монге фиолетово на таймзоны, хоть как вы их настраивайте на сервере с бд, возьмется время, полученное в момент подготовки запросп в драйвере
я тоже так думал сначала, НО не все так просто на сервере настроен пояс GTM+3, в БД пишется GTM+0 очевидно что что-то не так

Олег Иванович
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/ и здесь тоже

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. Не знал

Тогда в чём проблема?

а главное, зачем вам это?

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

вы там пишете про «переполнение кластера». какую проблему вы решаете?

invzbl3
07.09.2018
13:50:26
вы там пишете про «переполнение кластера». какую проблему вы решаете?
У меня добавляется определенное кол-во документов в бд ежедневно. Набрав определенное количество хочу каждый заменить на новый не изменяя поле id

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
зачем вам нужен старый id?
Потому что в документации написано, что _id поле неизменяемое

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