Viktar
и тайм и линк
Anton
я про пустые строики. я к тому что не писать такие ключи в базу
Попрошу выражаться более корректно с выражениями по отношению к человеку который вчера монгу скачал)
Anton
ааа, строики — строки
Viktar
все мы когда то монгу скачивали впервый раз.
A
Добрый вечер! Подскажите, задача перенести данные с одного кластера(3 ноды) на другой(N нод), около 200 гб. Текущие ноды слишком мощные и жрут $. Прочитал что у MongoDB нет master-master репликации которая подошла бы в там случае. Вопрос, как перевезти данные с минимальным даунтаймом? Спасибо.
A
primary + 2 secondary. Сделать Sync, в плане, докинул в кластер новые ноды меньшего размера, подождать пока новые secondary вытянут все данные и отключить старые?
A
Спасибо! не подумал про такую схему, буду пробывать.
Anonymous
Hi all!
Anonymous
I'm going to report my sale history Is there any best practice you suggest guys??
Anonymous
Я собираюсь сообщить о своей истории продаж Есть ли какие-нибудь лучшие практики, которые вы предлагаете, ребята?
Anonymous
Anonymous
Ты о чем?
I mean Report dashboard for sale history
Joe
I mean Report dashboard for sale history
И как это относится к бд?
Anonymous
И как это относится к бд?
Can't db do that its own?:)
Joe
Can't db do that its own?:)
It's data storage. If u wanna visualize it u need 2 use some clients or write ur own client
Anonymous
Всем привет! ни у кого не возникало проблем с использованием арбитр нод на mongodb? просто на монговском форуме, чувак написал следующее I’d highly recommend making it a data node. Review some recent threads involving arbiters in the replica sets. я ему конечно встречный вопрос задал, но ответ пока не получил) думаю дай ка спрошу на нашем коммунити)
Eva🇺🇦
$search ищет точное совпадение, или, например, искать “крев” вернет креветку и т.д.? Норм вообще серч по нескольким документам имплементировать через монгу? Мб это принято через какой-то эластик серч?
Anonymous
0.0.0.0:8080: [Errno 111] Connection refused, Timeout: 5.0s, Topology Description: <TopologyDescription id: ############, topology_type: Single, servers: [<ServerDescription ('0.0.0.0', 8080) server_type: Unknown, rtt: None, error=AutoReconnect('0.0.0.0:8080: [Errno 111] Connection refused')>]> Что не так? Не могу на локале для тестов установить монго
Den
/stat@combot
Олег
Всем привет, подскажите пожалуйста, как я могу найти индекс объекта с projectId в массиве projects, спасибо) { _id: new ObjectId("617682e9e2ec555b374283d1"), email: 'xexe@gmail.com', name: 'Khrustia2002', password: '$2a$12$MW/bxFta4gjxbFpwBZQADeNfppoFJbjc2n98M5c2qjjBoPxmtHK4y', projects: [ { projectId: new ObjectId("61753a6edbd6ae47101283f1"), state: 'qa', _id: new ObjectId("61768321e2ec555b374283ef") } ], __v: 0 }
Anonymous
Шта?)
Suworow
Шта?)
чую ответ был не к тому сообщению )
Anonymous
Ок, спасибо ☺️☺️
Ivan
привет, подскажите, пожалуйста, торможу.. есть схема мероприятия, которая содержит массив пользователей. как можно проверить, что определенный пользователь есть в этом массиве? ищу по id const webinarSchema = new Schema( { ... users: { type: [ { type: Schema.Types.ObjectId, ref: 'user', }, ], default: [], }, }, ... );
Андрей
или проверку нужно запросом выполнить?
Ivan
я так пытался webinar.users.some((user) => user._id === candidate._id) но он выдает мне false, т.к. если я посмотрю содержимое webinar.users, там будет [ new ObjectId("61779f5544b8cfb85aa41912"), new ObjectId("6177a4f8e6a0113f023b087b"), new ObjectId("6177aacdc69727a453a87cd5"), new ObjectId("6177af68c69727a453a87db6"), new ObjectId("6177b100c69727a453a87e2d"), new ObjectId("6177b7a9c69727a453a88079"), new ObjectId("6177baaaece18e3aa21d944a"), new ObjectId("6177bc66ece18e3aa21d950c"), new ObjectId("617801e26bfa788c53d45a90") ]
Ivan
или проверку нужно запросом выполнить?
нет, не обязательно, просто проверить надо и все
Ilya
yopp
Всем привет! ни у кого не возникало проблем с использованием арбитр нод на mongodb? просто на монговском форуме, чувак написал следующее I’d highly recommend making it a data node. Review some recent threads involving arbiters in the replica sets. я ему конечно встречный вопрос задал, но ответ пока не получил) думаю дай ка спрошу на нашем коммунити)
арбитры нужны только решения проблемы brain-split, когда необходим обеспечить доступность одной части кластера при наличии чётного числа нод. испоьзовать их при обычном деплойменте не рекомендуется, а если вы используете транзакции и/или majority write/read concern то логически недопустимо
yopp
$search ищет точное совпадение, или, например, искать “крев” вернет креветку и т.д.? Норм вообще серч по нескольким документам имплементировать через монгу? Мб это принято через какой-то эластик серч?
у text-index нет поддержки поиска по префиксам, так что если стемминг не приведёт слово «крев» к нормальной форме, то поиск не даст результатов
yopp
на мой взгляд, text-index в монге можно считать deprecated
Ivan
даже если я так пытаюсь сделать: const candidate = await Webinar.find({ _id: webinarId, usersBlackList: { $elemMatch: { _id: user._id } }, }); он мне почему-то ничего не возвращает. не могу понять, что не так делаю
Андрей
всё, вижу. попробуй так var mongo = require('mongodb'); var o_id = new mongo.ObjectID(theidID);
Андрей
затем ищи o_id в массиве
Андрей
theid - _id юзера
Ivan
у меня mongoose и так он мне ошибку выдает... или я с монгусом так не могу написать? (node:244) UnhandledPromiseRejectionWarning: TypeError: mongoose.ObjectID is not a constructor at Socket.joinUserTheWebinar (C:\Praktikum\dev\bodycoach-conference-backend\handlers\userHandlers.js:48:18) at processTicksAndRejections (internal/process/task_queues.js:93:5) (Use node --trace-warnings ... to show where the warning was created) (node:244) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1) (node:244) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Ivan
var mongoose = require('mongoose'); var id = mongoose.Types.ObjectId(usrid);
получилось, спасибо большое! хотел спросить, это считается костылем или это нормально так делать? и есть ли еще варианты реализации?
yopp
Этот инструмент нужен для решения одного класса проблем и в остальных случаях только создаёт проблемы
Anonymous
нуу смотрите, у меня сейчас монги расположены так DC1- Primary DC2- Secondary DC3- Arbiter и мне нужно что бы система работала когда 1 дц уйдет в оффлайн, для такого класса проблем все же нормально будет с такой архитектурой? На 3 площадке совсем мало дисков, а данных много, поэтому решено на арбитра уйти
yopp
нуу смотрите, у меня сейчас монги расположены так DC1- Primary DC2- Secondary DC3- Arbiter и мне нужно что бы система работала когда 1 дц уйдет в оффлайн, для такого класса проблем все же нормально будет с такой архитектурой? На 3 площадке совсем мало дисков, а данных много, поэтому решено на арбитра уйти
Если у вас PSA конфигурация и будет не доступен secondary, то при использовании majory concern у вас возникнут различные печальные сайд-эффекты связанные с отстающими чекпоинтами из-за невозможности закоммитить изменения, так как кворума нет
yopp
Плюс чтения с majority будут возвращать данные с последней точки majority чекпоинта
yopp
т.е. новые записи не получат ack и как следствие не будут доступны
yopp
второй момент это redundancy: арбитр не увеличивает устойчивости кластера
yopp
он позволяет обойти ограничение при голосовании, создав искуственное majority
yopp
наиболе корректный кейс для arbiter это географические топологии где, например PSS+SSS топология должна корректно обеспечивать ситуацию когда один регион отвалился
yopp
в основном такие кейсы нужны когда у вас шард, в котором используется балансировка по регионам и вам нужно обеспечить доступность записи внутри региона при условии потери связанности
yopp
т.е PSSA у вас в «локальном» регионе, а SSS в остальных
Андрей
Нашальнику надо сказать - проси деньги у бизнеса для места под данные в третьем ДЦ.
Eva🇺🇦
у text-index нет поддержки поиска по префиксам, так что если стемминг не приведёт слово «крев» к нормальной форме, то поиск не даст результатов
А как осуществляется динамичный поиск? То есть я хочу загуглить юзернейм nagibator, и ввела в поисковой строке пока только nag, мне предложит список юзеров с именами на nag: nagster, naga и т.д.
yopp
простой поиск по префикску покрывается обычным индексом. поиск по перфиксу слова внутри строки никак не покрывается и потребует или сканирования всего индекса или вообще всей коллекции
yopp
https://docs.mongodb.com/manual/reference/operator/query/regex/#index-use
Anonymous
Всем спасибо большое!
S
Добрый вечер господа,могу я задать вопрос.Я просто совсем новичок в монге да и вообще в программировании.Может кто помоч подсказав что это вообще за файлы.Я открыл папку с моей mongobd и вижу вот эти файлы
Just
Всем привет, а как skip() работает? И почему его нужно использовать с limit()? Например, мне нужно получить 20 любых документов, я использую limit(20) skip() - экономит время от прохода по остальным записям? Как он вообще работает, если человеческим языком?)
Anonymous
Савченко
Всем привет, а как skip() работает? И почему его нужно использовать с limit()? Например, мне нужно получить 20 любых документов, я использую limit(20) skip() - экономит время от прохода по остальным записям? Как он вообще работает, если человеческим языком?)
Если я правильно помню, при limit получишь не 20 любых документов, а 20 первых из запроса. Насчёт порядка сортировки не скажу, надо доку посмотреть. Я, например, skip и limit в паре использовал для обхода массива документов итерациями по пачкам.
Just
Если я правильно помню, при limit получишь не 20 любых документов, а 20 первых из запроса. Насчёт порядка сортировки не скажу, надо доку посмотреть. Я, например, skip и limit в паре использовал для обхода массива документов итерациями по пачкам.
Сортировка и первые 20 доков из запроса - это понятно Зачем использовали skip в вашей задачи? Мне нужно понять как оно работает Типа: я "skip" и я прихожу после сортировки, чтобы сказать многе - остальные данные проверять не нужно, пойдет и первые 20))
Савченко
Limit - вывести первые x записей, skip - отбросить первые x записей Для моего кейса - есть, например, лям документов. Берём из ляма пачку в 100к, задав только лимит, потом вторую пачку - лимит 200к, скип - 100, третья - лимит 300, скип 200 и т.д. Путь не очень mongo way, вероятно, но все же
Савченко
Это да, для моего случая я потом на агрегацию заменил вообще. Но как пример работы skip и limit в паре подходит)