MongoDb $ где не принимает функцию JavaScript - PullRequest
0 голосов
/ 30 августа 2018

В документации MongoDb (v4.0) говорится, что мы можем передать функцию JavaScript в предложение where. Я ожидаю, что следующий тривиальный пример вернет ноль документов ...

let receipts = 
    await db
        .collection<IReceipt>("receipt_txs")
        .find({$where: function () { return false; } } )
        .toArray();

Однако это возвращает каждый документ.

Следующий синтаксис работает, но по эксплуатационным причинам я бы лучше использовал приведенный выше синтаксис.

let receipts = 
    await db
        .collection<IReceipt>("receipt_txs")
        .find({$where: "function () { return false; }" } )
        .toArray();

let receipts = 
    await db
        .collection<IReceipt>("receipt_txs")
        .find({$where: "false" } )
        .toArray();

Может кто-нибудь помочь мне понять, где я иду не так? Документы достаточно ясны, и этот синтаксис действителен , начиная с v2 , поэтому я уверен, что это не может быть ошибкой.

1 Ответ

0 голосов
/ 30 августа 2018

$ где с функциональными литералами не совместим со всеми фреймворками. Например, это запрос функции в Meteor , который не поддерживается "из коробки".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...