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}
]
});