Viktar
и тайм и линк
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??
Joe
Anonymous
Я собираюсь сообщить о своей истории продаж
Есть ли какие-нибудь лучшие практики, которые вы предлагаете, ребята?
Anonymous
Joe
Anonymous
Ты о чем?
I mean Report dashboard for sale history
Joe
Anonymous
Joe
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
Anonymous
Олег
Всем привет, подскажите пожалуйста, как я могу найти индекс объекта с 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: [],
},
},
...
);
Андрей
привет, подскажите, пожалуйста, торможу..
есть схема мероприятия, которая содержит массив пользователей. как можно проверить, что определенный пользователь есть в этом массиве? ищу по 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")
]
Anonymous
Ilya
yopp
Андрей
я так пытался
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")
]
помимо _id нужно ещё user_id засунуть, либо поменять _id на user_id
конечно, ещё можно искать и по _id, но это уже другая история
yopp
Ivan
Андрей
yopp
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
Anonymous
yopp
yopp
Этот инструмент нужен для решения одного класса проблем и в остальных случаях только создаёт проблемы
Anonymous
нуу смотрите, у меня сейчас монги расположены так
DC1- Primary
DC2- Secondary
DC3- Arbiter
и мне нужно что бы система работала когда 1 дц уйдет в оффлайн, для такого класса проблем все же нормально будет с такой архитектурой?
На 3 площадке совсем мало дисков, а данных много, поэтому решено на арбитра уйти
Dmitry
yopp
yopp
Плюс чтения с majority будут возвращать данные с последней точки majority чекпоинта
yopp
т.е. новые записи не получат ack и как следствие не будут доступны
yopp
второй момент это redundancy: арбитр не увеличивает устойчивости кластера
yopp
он позволяет обойти ограничение при голосовании, создав искуственное majority
yopp
наиболе корректный кейс для arbiter это географические топологии где, например PSS+SSS топология должна корректно обеспечивать ситуацию когда один регион отвалился
yopp
в основном такие кейсы нужны когда у вас шард, в котором используется балансировка по регионам и вам нужно обеспечить доступность записи внутри региона при условии потери связанности
yopp
т.е PSSA у вас в «локальном» регионе, а SSS в остальных
Андрей
Андрей
Нашальнику надо сказать - проси деньги у бизнеса для места под данные в третьем ДЦ.
yopp
простой поиск по префикску покрывается обычным индексом. поиск по перфиксу слова внутри строки никак не покрывается и потребует или сканирования всего индекса или вообще всей коллекции
Eva🇺🇦
yopp
https://docs.mongodb.com/manual/reference/operator/query/regex/#index-use
Anonymous
Всем спасибо большое!
S
Добрый вечер господа,могу я задать вопрос.Я просто совсем новичок в монге да и вообще в программировании.Может кто помоч подсказав что это вообще за файлы.Я открыл папку с моей mongobd и вижу вот эти файлы
Just
Всем привет, а как skip() работает?
И почему его нужно использовать с limit()?
Например, мне нужно получить 20 любых документов, я использую limit(20)
skip() - экономит время от прохода по остальным записям?
Как он вообще работает, если человеческим языком?)
Anonymous
Anonymous
Савченко
Савченко
Limit - вывести первые x записей, skip - отбросить первые x записей
Для моего кейса - есть, например, лям документов. Берём из ляма пачку в 100к, задав только лимит, потом вторую пачку - лимит 200к, скип - 100, третья - лимит 300, скип 200 и т.д. Путь не очень mongo way, вероятно, но все же
Савченко
Это да, для моего случая я потом на агрегацию заменил вообще. Но как пример работы skip и limit в паре подходит)