
Yuriy
24.01.2018
14:46:55
Вы не тем занимаетесь
Ну мыж не только этим) у нас большой бэклог) а это просто фичу жалко выкидывать, там фикс на 30 минут.

yopp
24.01.2018
14:47:07
Эта фича никому не нужна
В отличии от нормального интерфейса для написания запросов

Yuriy
24.01.2018
14:47:25

Google

Nick
24.01.2018
14:47:56
да я уже чекнул, но зачем вам именно список полей так и не понятно

Yuriy
24.01.2018
14:48:11

yopp
24.01.2018
14:48:25
«все» это кто?

Yuriy
24.01.2018
14:48:28

yopp
24.01.2018
14:48:47
я бы убил, если бы у меня клиент пошел ради автозполнения делать map/reduce

Nick
24.01.2018
14:48:52
автодополнение, знач всетаки редактор запросов

Yuriy
24.01.2018
14:49:02

yopp
24.01.2018
14:49:50
В прошлый раз я не смог нормально даже подключится к атласу. Теперь то оно работает?

Yuriy
24.01.2018
14:50:36
Да, мы там ядро все переделали, теперь там нормальный драйвер официальный :-)

yopp
24.01.2018
14:51:04
libmongoc или js драйвер?

Yuriy
24.01.2018
14:52:01
js (Node.js)
И для ios и для android

Google


Serhio
24.01.2018
14:52:57
Из-за того что в локальной сети задержки в основном обусловленны не физической передачей данных, а их обработкой в процессе передачи, вам только кажется что в локальной сети нет задержек. Но в локальной сети действуют те-же самые законы физики что и везде :)
Быстрее света информацию не передать. За 1 миллисекунду свет может преодолеть всего ~300км метров, а за 1 микросекунду соотвественно всего 300 метров, а за 1 наносекунду всего 30 сантиметров. Или ~4 нс на каждый метр. И это только время необходимое на физическую передачу сигнала в одну сторону.
Дальше у нас есть 7 слоёв OSI модели, каждый из которых вносит свои задержки. Например в L1 популярен Ethernet. В этом протоколе есть пауза между передачей пакетов. Длинна паузы 96 «битовых пульсов». «Битовый пульс» считается как (1 / скорость интерфейса). Т.е. для 10E это ~0.1мс, а для 1000E ~1нс.
Т.е. мы ещё даже не начинали считать сколько времени устройствам нужно на обработку и уже получили 5 нс задержки на каждый метр.
Вместе с задержкой на обработку, без специальных оптимизаций и использования специального оборудования, задержка в одну сторону будет измерятятся в сотнях микросекунд. Даже loopback интерфейс, который по сути не взаимодействует с сетевым оборудованием, даёт задержки в десятки микросекунд.
Теперь посчитаем очень упрощённо.
Так как монга предпологает последовательное исполнение команд, ей нужно отправить запрос и дождаться ответа от сервера. Чем меньше размер запроса и меньше работы делает монга, тем заметнее становятся задержки. Предположим что мы можем передать запрос, со всеми задержками, за 500мкс, а монга может выполнить 50 тыс условных документов в секунду, что даёт нам 2мкс на вставку вместе со всеми обрабтками
Последовательная вставка: 500мкс (запрос) + 2 (обработка) + 500мкс (ответ) = 1002мкс на документ. Или 998 документа в секунду.
Bulk вставка 1000 документов: 500мкс * 1000 (передача) + 2 мкс * 1000 (обработка) + 500мкс (ответ) = 502500 мкс. 503 мкс на документ или 1988 документа в секунду.
Что примерно в два раза быстрее. В реальности эффект может быть как больше, так и меньше. Это будет зависеть от того, где дальше расположенно следующее бутылочное горлышко.
круто завернул ? но у нас нет 7 слоев OSI по-факту ?


yopp
24.01.2018
14:57:41

Ilya
24.01.2018
14:59:12
Это стандарт которого никто не придердивается

Serhio
24.01.2018
15:01:26
есть как минимум OSI и TCP/IP модели, в первой 7 уровней во второй 5 =) OSI придумали хер знает когда, в darpa если память не изменяет. Придумать придумали, а связать с тем что вреале наворотили - "не смогла я не смогла". Затем появлялись всяческие стандарты/rfc/прочая макулатура. В итоге на деле вышло так что эталон OSI-7 херово ложится на нынешний стек TCP/IP и сделали более приближенную модель(вроде альтернативной)

yopp
24.01.2018
15:05:35

Serhio
24.01.2018
15:07:37
да это больше философский момент) но по-факту в tcp/ip сети отсутствуют 7 уровней модели

yopp
24.01.2018
15:07:53
Не знаю кто там «не смогла». Последние 3 уровня сейчас видны просто отлично, потому что есть например TLS. Это аккурат L5
В TCP/IP модели этого нет

Serhio
24.01.2018
15:08:19
внимание tcp/ip стек не знает что там выше)
и не должен

yopp
24.01.2018
15:08:30
так я и говорю что это две разные абстракции

Serhio
24.01.2018
15:09:59
конечно разные) и OSI наихеровейший способ рассказать об том как работает tcp/ip стек

yopp
24.01.2018
15:10:38
Нормальный способ

Kolya
24.01.2018
16:18:46
Ребят, нубский вопрос: в схеме монгуса я записываю данные и по умолчанию ставлю текущую дату date: { type: Date, default: Date.now }, но мне понадобилось взять эту дату и вернуть ее в ответ сервером, как лучше сделать? Записывать дату через new Data() и потом эту же дату возвращать? или можно прям получить дефолтное значение и вернуть? И как лучше с точки зрения производительности) Спасибо)

Alexander
24.01.2018
16:29:20

Kolya
24.01.2018
16:40:38
Спасибо

Alexander
24.01.2018
16:44:13

Kolya
24.01.2018
16:59:03

Mykola
25.01.2018
04:08:09
Посоветуйте GUI для работы с mongo на Mac

Google

Kolya
25.01.2018
04:46:23

IGOR
25.01.2018
10:48:07
Ребята, а что такое МонгоАтлас? Это типа база в облаке? Чет по гайдам их не смог настроить доступ. Может в кратце кто поведает

Dmitry
25.01.2018
10:49:28
Там же репликация
Mongouri бери и коннекться

IGOR
25.01.2018
11:08:11
подстава, это проблема мол ssl=true надо передавать, а с ним и сертификаты... Где блин взять это сертификаты?

Dmitry
25.01.2018
11:11:55

IGOR
25.01.2018
11:12:35
Едритова документация!!!!
mongodb://LOGIN:PASSWORD@HOST:27017/DATABASE?ssl=true&authSource=admin
последние 2 параметра! ss true и authsource
и нет проблем с SSL
это с традал через монгуста

Aleksandr
26.01.2018
05:08:03
а в монге есть партицирование?
я не про чанки и шардинг сейчас

Artem
26.01.2018
06:44:14
Мне кажется, если брать за пример партиционирование таблиц, например в оракле, то шардирование коллекций, как раз наиболее близко по смыслу.

Alex
26.01.2018
06:46:56

Mr.White
26.01.2018
06:53:25
Всем привет!
Возник вопрос по настройкам чтения в Mongo 3.0. есть replica set с 1 primary и 2 secondary. В случае если primary становится недоступен replica set + арбитр должны выбрать нового primary, судя по докам это занимает меньше минуты, в чем тогда необходимость использовать primaryPrefered режим доступа к replica set?
https://docs.mongodb.com/manual/reference/read-preference/#primaryPreferred
Т.е. какие вообще случаи могут быть когда этот режим даёт какие-то преимущества?

Pavel
26.01.2018
07:15:06
всем ку. Сохраняет ли $lookup из aggregation framework порядок массива? Вот у меня есть поле-массив objectId, я join-ю в него соответствующие документы. Почему на выходе массив перемешивается черт пойми как?
db.getCollection('trades').aggregate([
{ '$match': {
_id: ObjectId('5a546428f228c3156579fe00')
}
},
{
'$lookup': {
from: 'images',
localField: 'images',
foreignField: '_id',
as: 'images'
}
}
]);

Google

Viktor
26.01.2018
07:17:14
думаю лучше доку к lookup сразу смотреть

Pavel
26.01.2018
07:34:51
там нету ничего про order preserve
окей. А есть варик отсортировать массив объектов в соответствии с другим массивом?

Aleksandr
26.01.2018
07:41:49
да, смотри в сторону $sort
все что ты получаешь в агрегации можешь сортировать как тебе захочется

yopp
26.01.2018
09:09:54

Aleksandr
26.01.2018
09:22:14
В плане физического хранения есть разница
Шард - это уже отдельная база
Партицирование больше про физическое хранение одной таблицы в разных файлах в рамках одной базы
Но в целом шардинг один из способов партицирования
Надо ещё покопать как монга физически данные хранит
Помню что есть чанки, но они вроде к шардам относятся

Slava
26.01.2018
09:37:09

Aleksandr
26.01.2018
09:42:41
Да
А я к примеру хочу чтобы одна коллекция хранилась в двух файлах
Как это осуществить?

yopp
26.01.2018
09:48:00
Никак.

Sergey
26.01.2018
09:48:03
Шардировать

yopp
26.01.2018
09:48:05
Шардинг
Проблема в том что места не хватает или iops?
https://www.mongodb.com/blog/post/training-machine-learning-models-with-mongodb

Artur
26.01.2018
13:55:55
всем привет,
как лучше реализовать проверку isEmpty при удалении коллекции через drop() ?

GNU/Docker
26.01.2018
13:58:16
if not collection.find_one():
collection.drop()
например
или .count()

Google

GNU/Docker
26.01.2018
13:59:21
смотря что быстрее

Artur
26.01.2018
13:59:40
ну да реализовал так же
collection.count().then(
res => {
if (res) {
collection.drop();
console.log('Database successfully droped!');
}
else {
console.log('Database is alredy empty!');
}
}
);
подумал что костыльно

GNU/Docker
26.01.2018
13:59:58
alreAdy

Artur
26.01.2018
14:00:04
странно что drop возвращает false только если нет коллекции

GNU/Docker
26.01.2018
14:00:05
dropPed

Artur
26.01.2018
14:00:13
)

GNU/Docker
26.01.2018
14:00:39
а в драйвере у дропа нет для этого параметров?

Artur
26.01.2018
14:00:54
а вот щас гляну

GNU/Docker
26.01.2018
14:01:10
а надо было сразу )

Artur
26.01.2018
14:03:07
спасибо за помощь)

Kolya
26.01.2018
16:23:37
Или нужно делать перебор массива?

yopp
26.01.2018
16:30:59
без mongoose это делается через dot notation: user._id
но вообще это смысла не имеет в монге делать, а в монгусе скорее всего нужно просто reduce какой сделать сравнивая _id с нужным или что подобное

Kolya
26.01.2018
16:32:38