Deep learning shows great potential in massive MIMO channel estimation (CE). The traditional channel estimator based on deep neural network (DNN) requires a large amount of labeled data when completing supervised learning. Considering that real channel state information (CSI) is difficult to obtain, such methods suffer from high training cost and limited ability to adapt to dynamic environment. In this paper, we propose an efficient and effective CE algorithm based on contrastive feature learning, which can learn the ground truth channel accurately with a limited number of labeled data. The location information is utilized to preprocess the received measurement to obtain positive and negative samples, after which, contrastive learning (CL) is exploited to effectively extract CSI features. The CSI features are fed into the downstream network to complete the CE task. To improve the effectiveness of feature extraction, a joint learning scheme is further proposed. Simulation results show that the contrastive feature learning can greatly reduce the required number of labeled data and enhance the overall CE performance.