Angular-meteor用户集合仅返回1个对象

时间:2015-09-08 08:36:43

标签: javascript angularjs mongodb meteor

我正在编写一个应用程序,其中angular作为前端,meteor作为后端,我想检索集合“Users”中的每个用户(添加了模块accounts-ui和accounts-password)。但是当我执行以下代码时,它只返回一个对象(最后添加的),而有3个用户。

if(Meteor.isClient){
angular.module('timeAppApp')
.controller('SignInCtrl', function($scope, $meteor, $location) {

    $scope.LogIn = function() {
        console.log($meteor.collection(Meteor.users).subscribe('users_by_email', $scope.username));
        console.log($meteor.collection(Meteor.users).subscribe('all_users'));
    };

});

}

if (Meteor.isServer) {
    // Returns all users find by email
    Meteor.publish('users_by_email', function(emailE){
        return Meteor.users.find({'emails.address': emailE});
    });

Meteor.publish('all_users', function(){
    return Meteor.users.find({}, {fields: {emails: 1}});
})

我是流星的新手,所以我还在尝试,但现在我真的被卡住了。

1 个答案:

答案 0 :(得分:3)

试试这个, 在服务器端

Meteor.methods({
     get_users_by_email: function (emailE) {
         return Meteor.users.find({ emails: { $elemMatch: { address: emailE } } }).fetch();
    }
});

在客户端

$meteor.call('get_users_by_email', $scope.username).then(
            function(data){
                console.log('success get_users_by_email', data);
            },
            function(err){
                console.log('failed', err);
            }

        );