thanks for Joaquín M López Muñoz 's reply.

i have tried your code, it works as i need exactly.

for(auto it=data.get<1>().begin(),it_end=data.get<1>().end(); 
      it!=it_end; 
      it=data.get<1>().upper_bound(it->m2)){ 
     std::cout<<it->m2<<"\n"; // or whatever you need to do with the key 
  } 

i'll use this method in reality, thanks!

Bill