2015-04-18 2 views
2

я пытаюсь найти записи по показателям:Поиск по индексу числа

var questions = db.addCollection('questions',{indices: ['key']}); 
questions.insert({ 
key: 1, 
quest: 'any idea' 
}, 
{ 
    key: 2, 
    quest: 'no idea' 
}); 

questions.find({'key':1}); 

, но я не получаю никакого результата. Сбрасывание базы данных показывает записи. Любая идея?

ответ

1

автор LokiJS здесь. Просто для точности проблема не лежит в строке vs number, а в синтаксисе, используемом для запроса, который не должен быть find({x: 1, y: 1}), но find({x:1}, {y: 1}). Запросы с несколькими свойствами, возможно, будут поддерживаться в будущем, но рекомендуется использовать findAnd и findOr, или еще лучше использовать DynamicView, когда это возможно.

обновление: правильный синтаксис, чтобы сделать это прямо сейчас: find({ '$and': [{x:1}, {y: 1}]}).

+1

Привет, Джо, приятно получить официальный комментарий. Я чувствую, что было бы более распространено иметь доступ к полному ключу с обычной находкой и не нуждаться в findAnd. Я думаю, что это было источником попыток этого. Я согласен, что в случае не созданного первичного ключа обычная findAnd будет обычным способом. Хорошая работа, что вы сделали с LokiJS - RESPECT !! – Danny

+1

@ Дэнни ура! Передача различных объектов запроса, таких как '{x: 1}, {y: 1}' выполняет неявную операцию 'и'. В любом случае 1.4 представит' ExactIndex', который будет группировать записи с определенным значением, что позволит решить многие из эти сценарии. Метод 'find' больше похож на любителей Монго (я тоже один из них: D), но не идиоматический LokiJS. –

Смежные вопросы