title: Meteor: How to publish cursor that is depending on cursor of other collection
body: <p>I'm having the following data structure in my Meteor project:<br>
  - Users with a set of list-ids that belong to the user (author)<br>
  - Lists that actually contain all the data of the list</p>
  
  <p>Now I'm trying to publish all Lists of a user to the client. Here is a simple example:</p>
  
     <pre class="lang-js prettyprint-override"><code>if (Meteor.isClient) {
      Lists = new Meteor.Collection("lists");
  
      Deps.autorun(function() {
          Meteor.subscribe("lists");
      });
  
    Template.hello.greeting = function () {
      return "Test";
    };
  
    Template.hello.events({
      'click input' : function () {
        if (typeof console !== 'undefined')
          console.log(Lists.find());
      }
    });
  }
  
  if (Meteor.isServer) {
      Lists = new Meteor.Collection("lists");
  
      Meteor.startup(function () {
          if ( Meteor.users.find().count() === 0 ) {
                 Accounts.createUser({        //create new user
                     username: 'test',
                     email: 'test@test.com',
                     password: 'test'
                 });
  
                 //add list to Lists and id of the list to user
                 var user = Meteor.users.findOne({'emails.address' : 'test@test.com', username : 'test'});
                 var listid = new Meteor.Collection.ObjectID().valueOf();
                 Meteor.users.update(user._id, {$addToSet : {lists : listid}});
                 Lists.insert({_id : listid, data : 'content'});
          }
       });
  
  
      Meteor.publish("lists", function(){
          var UserListIdsCursor = Meteor.users.find({_id: this.userId}, {limit: 1}).lists;
          if(UserListIdsCursor!=undefined){
              var UserListIds = UserListIdsCursor.fetch();
  
              return Lists.find({_id : { $in : UserListIds}});
          }
      });
  
      Meteor.publish("mylists", function(){
          return Meteor.users.find({_id: this.userId}, {limit: 1}).lists;
      });
  
  
  //at the moment everything is allowed
  Lists.allow({
      insert : function(userID)
      {
          return true;
      },
      update : function(userID)
      {
          return true;
      },
      remove : function(userID)
      {
          return true;
      }
  });
  
  }
  </code></pre>
  
  <p>But publishing the Lists doesn't work properly. Any ideas how to fix this? I'm also publishing "mylists" to guarantee that the user has access to the field "lists".</p>