Нельзя использовать неправильный синтаксис, более или менее такой же, как в оболочке. Это все еще javascript, просто без помощников оболочки.
Events.find({ _account: "XXXX",
$or: [
{expires: {$gt: Date(2014,02,02)}},
{expires: {$exists: false }}
}, function(err, events) {
if (err) // TODO
// do something with events
});
В качестве альтернативы вы используете другие помощники для создания запроса:
var query = Events.find({ _account: "XXXX" });
query.or(
{expires: {$gt: Date(2014,02,02)}},
{expires: {$exists: false }}
);
query.exec(function(err, events) {
if (err) // TODO
// do something with events
});
или другие комбинации. Эти «помощники» в основном существуют в драйверах для синтаксического контроля с другими нединамическими языками, такими как Java. Вы можете искать примеры использования QueryBuilder в Java, если вы предпочитаете этот способ и не можете найти ссылки на узлы. Для мангуста есть documentation для запросов, которые стоит посмотреть.
Динамические языки имеют более собственный подход к определению таких структур объектов, которые используются для запросов и т. Д. Поэтому большинство людей предпочитает их использовать.
ах, фантастический - я думал, что должен был использовать помощников и не был уверен, как «или» был реализован в сочетании с оригинальной «находкой». Я попробую это, когда вернусь в офис позже сегодня. – justin