2015-11-07 2 views
1

В настоящее время я пытаюсь запрограммировать Login в Meteor (да, я знаю, что для пакета регистрации по умолчанию). Венна пользователь нажимает Submit на Логиниться, вызов Метеора метода выполняется:Проверьте, содержит ли коллекция хотя бы один документ

Template.Login.events({ 
"submit form": function(event, doc){ 
    event.preventDefault(); 
    var username = doc.find("#login-username").value; 
    var password = doc.find("#login-password").value; 
    Meteor.call("isAdmin",username,password, function(error, result){ 
     console.log("Catchback from Method Call: "); 
     console.log(error); 
     console.log(result); 
    }); 
} 
}); 

И метод Meteor, который должен проверить, если коллекция содержит запись:

Meteor.methods({ 
    isAdmin: function (username, password){ 
     return !!Admins.find({username: username, password: password}); 
    } 
}); 

Проблемы теперь я просто не могу понять, как просто вернуть true, когда коллекция содержит запись для этого пользователя, а false, если нет. В настоящее время он просто возвращает true для всего.

ответ

1

Функция collection.find([selector], [options]) возвращает курсор. В результате вы можете использовать collection.find([selector], [options]).count(), который возвращает количество документов, соответствующих запросу find(). В дальнейшем вы можете проверить, больше ли это значение счета.

В вашем случае:

Meteor.methods({ 
    isAdmin: function (username, password){ 
     return Admins.find({username: username, password: password}).count() > 0; 
    } 
}); 
Смежные вопросы