Я хочу использовать $where
для сравнения двух полей в одном документе. Но условие сравнения можно изменить.
Например:
let x = 1;
db.test.find({$where: foo});
function foo() {
return this.a - this.b > x;
}
И возникает ошибка:
ReferenceError: x is not defined
Как передать это значение вне функции?
Я решил свой вопрос. Я использую строку шаблона здесь, чтобы передать значение x функции.
let x = 1;
db.test.find('this.a - this.b > ${x}');
Если вы хотите объявить переменную и хотите ее использовать внутри функции mongoDb, вы можете сделать это таким образом
db.test.find({$where: function() {
let x = 1;
return this.a - this.b > x;
}})