Funq works pretty intuitively, i.e. whatever you register you can resolve. So just make sure what you're trying to resolve, is the same thing as what you've registered.
There is no magic behavior in Funq, so this is an example of what doesn't work:
container.RegisterAutoWiredType(typeof(MongoRepository<>), typeof(IRepository<>));
If you want to be able to resolve MongoRepository<User>
you need to register it, e.g:
container.RegisterAutoWiredAs<MongoRepository<User>,IUserRepository>();
Which you're then free to resolve like a normal dependency:
public class MyService : Service
{
private readonly IUserRepository _userRepository;
public MyService(IUserRepository userRepository)
{
_userRepository = userRepository;
}
}