LokiJS: Простой запрос поиска возвращает неверный результат

В LokiJS я пробую очень простой запрос (который я предполагаю - И):

var dbRes = recsCol.find({'format':format, 'cardId':-1});

после вставки некоторых данных с

recsCol.insert({format:format, cardId:id, recCardId:key, amount:item[key]});

это не содержит cardId -1.

Запрос по-прежнему дает результаты. Это ожидаемое поведение? Если так, как я могу сделать поля точно совпадающими, чтобы в этом случае я не получил результат?

2 ответа

Решение

Вы можете сделать AND в LokiJS, без проблем:

var dbRes = recsCol.find({'$and': [{'format':format}, {'cardId':-1}]});

Я рекомендую использовать поиск для одноразовых запросов. Если запрос выполняется несколько раз для наборов результатов, которые могут измениться, то обязательно используйте представление.

По умолчанию все поля в объекте запроса обрабатываются как ИЛИ. Чтобы сделать это AND, вам нужно изменить синтаксис запроса на следующий:

recsCol.find({
    $and: [
        {'format':format},
        {'cardId':-1}
    ]
});
Другие вопросы по тегам