春のデータMongoDB - 返すフィールドを選択する

Spring Data MongoDB –返すフィールドを選択

MongoDBコンソールでは、field:1を使用して、クエリから返すフィールドを選択できます。

> db.hosting.find({},{domain:1, count:1});

MongoDBのSpringDataでは、query.fields().includeを使用します。

HostingDaoImpl.java

package com.example.core.hosting.dao;

import java.util.List;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Repository;
import com.hostingcompass.core.db.dao.MongoDaoImpl;

@Repository
public class HostingDaoImpl
    extends MongoDaoImpl implements HostingDao {

    @Override
    public List findTopHosting(int numOfRecord) {

        Query query = new Query();

        if (numOfRecord > 0)
            query.limit(numOfRecord);

        query.with(new Sort(Sort.Direction.DESC, "count"));
        query.fields().include("_id");
        query.fields().include("domain");
        query.fields().include("count");

        return findAll(query, Hosting.class);

    }

}