package com.bls.mongodb.dao; import java.util.List; import java.util.stream.Collectors; import javax.inject.Inject; import com.mongodb.BasicDBObject; import org.mongojack.DBQuery; import com.bls.core.person.Person; import com.bls.dao.PersonDao; import com.bls.mongodb.core.PersonMongodb; import com.google.common.collect.Lists; import com.mongodb.DB; /** Poi mongodb data provider */ public class PersonMongodbDao extends CommonMongodbDao<PersonMongodb, Person<String>, String> implements PersonDao<Person<String>> { @Inject public PersonMongodbDao(final DB db) { super(db); dbCollection.ensureIndex(new BasicDBObject("location", "2dsphere")); } @Override protected Class<PersonMongodb> getMongodbModelType() { return PersonMongodb.class; } @Override public List<Person<String>> findByUserId(String ownerid) { final List<PersonMongodb> mongodbEntities = dbCollection.find(DBQuery.is("ownerid", ownerid)).toArray(); final List<Person<String>> coreEntities = Lists.newArrayListWithCapacity(mongodbEntities.size()); coreEntities.addAll(mongodbEntities.stream().map(this::convert2coreModel).collect(Collectors.toList())); return coreEntities; } }