Как передать внешние переменные для функции, назначенной на '$ где'

1

Я хочу использовать $where для сравнения двух полей в одном документе. Но условие сравнения можно изменить.

Например:

let x = 1;
db.test.find({$where: foo});
function foo() {
    return this.a - this.b > x;
}

И возникает ошибка:

ReferenceError: x is not defined

Как передать это значение вне функции?

  • 1
    если это ваш точный код, то x не должен быть «не определен»
  • 0
    @Bravo Спасибо за ваш комментарий. Это пример, и мой код более сложный. Может быть, я должен сначала попробовать этот пример, чтобы проверить значение х
Теги:

2 ответа

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

Я решил свой вопрос. Я использую строку шаблона здесь, чтобы передать значение x функции.

let x = 1;
db.test.find('this.a - this.b > ${x}');
0

Если вы хотите объявить переменную и хотите ее использовать внутри функции mongoDb, вы можете сделать это таким образом

db.test.find({$where: function() {
 let x = 1;
 return this.a - this.b > x;
}})
  • 0
    Спасибо за совет. Х здесь на самом деле исходит от клиента, и я не знаю его значение. Объявление x в функции mongoDB может не соответствовать потребностям.

Ещё вопросы

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