mongodb передает аргументы в коллекцию find

1

Я пытаюсь передать аргументы функции в find коллекции mongodb. Как это:

async find() {
  try {
    return await db.collection('users').find.apply(null, arguments);
  } catch(err) {
    console.error(err);
  }
}

Он возвращает

TypeError: Cannot read property 's' of null at Collection.find (/localpath/node_modules/mongodb/lib/collection.js:282:22)

я могу бежать

await db.collection('users').find()

и курсоры возвращаются. Поэтому соединение и сбор правильно настроены.

Что я не получу здесь?

Теги:
arguments

1 ответ

1
Лучший ответ

ваш первый аргумент для применения - null, этого не может быть.

Я предлагаю вам передать ссылку в качестве первого аргумента для apply или развернуть аргументы:

await db.collection('users').find(...arguments)

уточнить, какой эффект null как первый аргумент для apply...

// will log "hello"
({foo:function(){console.log(this.bar)}, bar:'hello'}).foo()

// will log undefined
({foo:function(){console.log(this.bar)}, bar:'hello'}).foo.apply(null)
  • 0
    Нуль работает. Попробуйте это: `function b (args) {console.log ('args', args); }; function a () {b.apply (null, arguments); } a ('test'); `Когда я использую параметр rest без установки первого параметра на null, я все равно получаю ту же ошибку. Извините за невозможность отформатировать код. Согласно «помощи», обратная галочка должна давать отформатированный код в комментарии, но это не так.
  • 0
    ты попробовал как я сказал? с развёртыванием аргументов? Единственное отличие, которое вы здесь делаете, заключается в том, что вы подавляете контекст, применяя значение null.
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню