Dmytro
или как советуете?
Arthur
Всем привет. Вопрос по mongoose aggregate. Есть две таблицы. Юзеры. Заявки. В таблице юзеры есть id,username. В таблице заявки есть tt_id, user_id. Как сделать выборку всех заявок, с именами юзеров. Причём бывает такое что у заявки user_id пустой ?
Таймураз
Зависит от конкретного (протокола/соглашения). Я бы предпочёл отправлять/получать. Но могу придумать, когда отправка будет лишней
Когда слишком много полей и у тебя этим данные занимают слишком много от всего респонза
Sergey
воу воу
Sergey
в 8.5 заимплементили модули
Sergey
module Add support for ESM. This is currently behind the --experimental-modules flag and requires the .mjs extension. node --experimental-modules index.mjs #14369
сomorsiс
3
Sergey
https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V8.md#2017-09-12-version-850-current-mylesborins
Sergey
лишь бы стандартную библиотеку запилили нормально
сomorsiс
Всмысле третий раз пишут сюда
Sergey
сейчас не работает import { join } from 'path'
Arthur
1. $lookup tt_id 2. $unwind 3. $match 4. $project
Это все вместе надо ?
O.
Естественно.
O.
В зависимости от задачи естественно.
Arthur
O.
Изначально необходимо открыть документацию по MongoDB Aggregate (именно ее; не mongoose).
O.
Т.к. mongoose не связан никоим образом с агрегацией в принципе.
Arthur
Т.к. mongoose не связан никоим образом с агрегацией в принципе.
Спасибо. Я делал lookup, unwind. Все ок. Только заявки с пустым user_id не возвращает. Match project думаю поможет.
O.
$project сформируешь ответ.
O.
Могут быть промежуточные $project.
Kons
Не планируется ли какого-нибудь синтаксиса для Symbol(), чтобы каждый раз не писать const SYMBOL_NAME = Symbol('symbol_name'), а, например, @symbol_name?
Vladimir
Нет
Max
Всем привет)
Max
Max
у кого-нибудь бывало такое?
Max
Пытаюсь сделать через флаг --inspect Memory Snapshot
Max
последняя нода
Kons
Max
Max
на
Kons
А как ты себе это представляешь?)
Если речь про использование, то как-то так: const myObj = {}; myObj[@sym] = 'some value'; или const myObj = {}; myObj[:sym] = 'some value'; вместо const SYM = Symbol(); const myObj = {}; myObj[SYM] = 'some value';
Evgeny
А какой юзкейс?
Kons
А ты знаешь, как внутренне работает Symbol?
Нет. Расскажи, пожалуйста, если не трудно.
Vladimir
И чем символ тогда от строк будет отличаться?
Kons
тогда - это когда?
Vladimir
Тогда, это в твоем примере
Kons
const SYM = Symbol(); const myObj = {}; myObj[SYM] = 'some value'; Вот здесь символ от строки чем отличается?
Vladimir
Тем что он уникален и его нельзя воссоздать никаким образом
Kons
Ааа, вот вы о чем…
Gleb
Symbol('description') возвращает тебе образно говоря UUID. Так как его никто не знает, ты можешь положить его в переменную и использовать в obj[symbol].
Kons
const a = 'stroka'; const b = 'stroka'; a === b; // true Т.к. символ - это тоже примитив, заменяем в примере 'stroka' на :sym (или @sym) и получаем то же самое.
Gleb
Но если смотреть в контексте классов, то тебя спасут Private properties.
Таймураз
Как это противоречит тому, что я написал?
При создании объекта символа у тебя разово генерируется уникальное значение. Тебе нужно сначала сгенерировать его, а потом использовать
Kons
Мужчины, я знаю, как работают символы. Я спросил, не планируется ли альтернативный синтаксис :)
Vladimir
Твой синтаксис убивает смысл символов
Kons
Странно, мне бы удобней было
Evgeny
Господа, а никто на память не вспомнит коротенкую маленькую либу которая умеет обрабатывать массивы хендлером так, что каждый следующий элемент выполняется в nextTick ?
Kons
Да и в рубях не убивает, а тут убивает…
Vladimir
Какое отношение символы в руби имеют к js? Правильно, никакого
arts
Тот случай, когда гуглить дольше, чем самому написать :-)
Evgeny
Тот случай, когда гуглить дольше, чем самому написать :-)
я уже говорил - ненавижу срать туда где работаю.
Kons
Т.е. никакой возможности избежать вот таких записей нет? const PROP_1 = Symbol(); const PROP_2 = Symbol(); const PROP_3 = Symbol(); class Klass { constructor(arg1, arg2, arg3) { this[PROP_1] = arg1; this[PROP_2] = arg2; this[PROP_3] = arg3; } method() { if (this[PROP_1]) { this[PROP_2] = this[PROP_3] } } ... }
Evgeny
А ты неминуемо к этому придёшь, даже с твоим предложением
Evgeny
потому что в контрукторе и в методе это будут разные символы
Evgeny
Либо протеряется вся идея симовлов
Kons
Да, понял. Спасибо.
Gleb
Короче, чувак, тебе нужны Private properties из tc-39 proposal. Жди, скоро впилят в Babel.
Kons
Просто остальные решили проверить знания сразу мои сразу, поучить. Это так смешно выглядит. Вспоминается картинка «Беседа JavaScript-господ».
Arthur
у кого-нибудь бывало такое?
Может быть уже запущена другая нода на этом порту ?
Kons
Ну если ты хорошо понимаешь, как работает Symbol, то я слабо понимаю, как возник сей вопрос.
Возможно, что-то упустил из вида. Забей. Мне @NordLuf в личке задал правильные вопросы, которые вернули меня на «путь истинный». Я прямо сейчас пишу код, в котором использую символы. От убогого нагромождения АППЕР_КЕЙСОВ я замечтался о каком-то более удобном синтаксисе и выдал в чат поток сознания. Хорошо, что у вас так не бывает. Правда, рад за вас. Извините, если расстроил кого-то, кто считал меня более лучшим JS-программистом.
Gleb
Сорян, что наехал)
Arthur
неа
Возможно что проблема в хроме. Если через него подключаешься. Попробуй chrome canary
Max
через хром