Size: a a a

JavaScript.Ninja

2020 May 16

_

___ in JavaScript.Ninja
кто-нибудь может помочи с  цыклом, не понимаю что-нет так   document.addEventListener('keydown', function(event) {

for(let m = 0; m < children.length; m++){
   if (event.code = keys[m] )   children[m].style.background = 'yellow';
 
}
   
 })
срабатывает сразу на все кнопки
источник

IK

Illya Klymov in JavaScript.Ninja
___
кто-нибудь может помочи с  цыклом, не понимаю что-нет так   document.addEventListener('keydown', function(event) {

for(let m = 0; m < children.length; m++){
   if (event.code = keys[m] )   children[m].style.background = 'yellow';
 
}
   
 })
срабатывает сразу на все кнопки
Два равно, не одно
источник

_

___ in JavaScript.Ninja
Illya Klymov
Два равно, не одно
о даа...спасибо
источник

PU

Pavel Usov in JavaScript.Ninja
Pavel Astahov
Куда и как расти после сеньорства? Только в руководители?
Запускать свой стартап)
источник

R

Roman in JavaScript.Ninja
async find() {
  const data = await    this.userModel.find({})
    .populate(path: 'result')
     .find({result.date: { $lte: new Date() } }}).exec()
      return data;
источник

R

Roman in JavaScript.Ninja
То есть этот код, который выше не сработает? Так как result это обьект
источник

MK

Maks Kravchenko in JavaScript.Ninja
Roman
То есть этот код, который выше не сработает? Так как result это обьект
Нет, path должен быть филдом, в котором лежит монго id
Посмотрите populate в документации
источник

S

Sergey in JavaScript.Ninja
Roman
async find() {
  const data = await    this.userModel.find({})
    .populate(path: 'result')
     .find({result.date: { $lte: new Date() } }}).exec()
      return data;
Я ещё новичёк в async-await'ах, но по-моему после return надо await ставить.
источник

R

Roman in JavaScript.Ninja
Maks Kravchenko
Нет, path должен быть филдом, в котором лежит монго id
Посмотрите populate в документации
Я уже исправил path указывает правильно
источник

R

Roman in JavaScript.Ninja
Roman
async find() {
  const data = await    this.userModel.find({})
    .populate(path: 'result')
     .find({result.date: { $lte: new Date() } }}).exec()
      return data;
Этот код я запускаю, он проходит без ошибок. Но результат не выдает
источник

MK

Maks Kravchenko in JavaScript.Ninja
Sergey
Я ещё новичёк в async-await'ах, но по-моему после return надо await ставить.
Либо дождаться ответа и ретерн результата, либо ретерн промиса
Но после ретерна await не нужен)
источник

R

Roman in JavaScript.Ninja
Так как populate возвращает массив, а там обьекты. То есть [{ }, { }, { }, { }] может есть какой то forEach чтобы на каждой итерации получать обьект. А там уже делать .find (фильтр)? Или я ошибаюсь
источник

MK

Maks Kravchenko in JavaScript.Ninja
Roman
Так как populate возвращает массив, а там обьекты. То есть [{ }, { }, { }, { }] может есть какой то forEach чтобы на каждой итерации получать обьект. А там уже делать .find (фильтр)? Или я ошибаюсь
Почитайте про aggregate чтобы все операции делались с помощью монги - быстрее будет работать)
источник

R

Roman in JavaScript.Ninja
Maks Kravchenko
Почитайте про aggregate чтобы все операции делались с помощью монги - быстрее будет работать)
Так мне из кода нужно сделать, а не из Mongo shell
источник

MK

Maks Kravchenko in JavaScript.Ninja
Roman
Так мне из кода нужно сделать, а не из Mongo shell
Populate можно выполнить и в aggregate и там же можно применить фильтр
источник

R

Roman in JavaScript.Ninja
Roman
Так как populate возвращает массив, а там обьекты. То есть [{ }, { }, { }, { }] может есть какой то forEach чтобы на каждой итерации получать обьект. А там уже делать .find (фильтр)? Или я ошибаюсь
@Big_Brosh   Хорошо, а это правильное утверждение?
источник

MK

Maks Kravchenko in JavaScript.Ninja
Roman
@Big_Brosh   Хорошо, а это правильное утверждение?
Populate можно делать с match, в который Вы прокините фильтры

https://stackoverflow.com/questions/46391630/mongoosejs-filter-out-populate-results
источник

R

Roman in JavaScript.Ninja
Хорошо, подскажите если я сделаю find ({}).populate () то что я получу в результате? Массив обьектов?
источник

MK

Maks Kravchenko in JavaScript.Ninja
Roman
Хорошо, подскажите если я сделаю find ({}).populate () то что я получу в результате? Массив обьектов?
Да
Тут зависит от цели
Если не нужно применять фильтры к тем объектам, которые получите через populate - можно и так)
источник

R

Roman in JavaScript.Ninja
.populate('user', {
            select: 'lastLoginDate',
            match: {lastLoginDate: {$lte: new Date()}} }).exec()


Не работает


(node:5855) UnhandledPromiseRejectionWarning: MongoError: Unsupported projection option: match: { lastLoginDate: { $lte: new Date(1589629705160) } }
источник