我正在编写一个应用程序,其中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}});
})
我是流星的新手,所以我还在尝试,但现在我真的被卡住了。
答案 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);
}
);