Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringMongo存储库切片_Java_Spring_Mongodb_Spring Data_Spring Data Mongodb - Fatal编程技术网

Java SpringMongo存储库切片

Java SpringMongo存储库切片,java,spring,mongodb,spring-data,spring-data-mongodb,Java,Spring,Mongodb,Spring Data,Spring Data Mongodb,我将spring sata mongodb 1.8.2与MongoRepository一起使用,并尝试在查询时使用mongo$slice选项限制列表大小,但在MongoRepository中找不到此选项 我的课程是这样的: public class InnerField{ public String a; public String b; public int n; } @Document(collection="Record") punlic class Record

我将spring sata mongodb 1.8.2与MongoRepository一起使用,并尝试在查询时使用mongo$slice选项限制列表大小,但在MongoRepository中找不到此选项

我的课程是这样的:

public class InnerField{
    public String a;
    public String b;
    public int n;
}

@Document(collection="Record")
punlic class Record{
    public ObjectId id;
    public List<InnerField> fields;
    public int numer;
}
公共类内部字段{
公共字符串a;
公共字符串b;
公共int n;
}
@文件(收集=“记录”)
双关语类记录{
公共对象id;
公共列表字段;
公共整数;
}
如您所见,我有一个集合名称“Record”,文档包含InnerField。InnerField列表一直在增长,因此我希望在查询时限制所选字段的数量

我看到:

这正是我所需要的,但我在mongorepository中找不到相关参考


有什么想法吗?

Query
中为
$slice
操作符提供抽象仍然是一个悬而未决的问题。请投票支持并帮助我们确定优先顺序

现在,您仍然可以使用
BasicQuery

String qry=“{\”\u id\:\“记录id\”}”;
字符串字段=“{\”字段\“:{\“$slice\”:2}}”;
BasicQuery查询=新的BasicQuery(qry,字段);

使用Java Mongo驱动程序中提供的切片功能,使用以下代码中的投影

例如:

List<Entity> list = new ArrayList<Entity>();
        // Return the last 10 weeks data only
FindIterable<Document> list = db.getDBCollection("COLLECTION").find()
                .projection(Projections.fields(Projections.slice("count", -10)));
MongoCursor<Document> doc = list.iterator();
while(doc.hasNext()){
    list.add(new Gson().fromJson(doc.next().toJson(), Entity.class));
}
List List=new ArrayList();
//仅返回最近10周的数据
FindTable list=db.getDBCollection(“COLLECTION”).find()
.投影(投影.字段(投影.切片(“计数”,-10));
MongoCursor doc=list.iterator();
while(doc.hasNext()){
add(new Gson().fromJson(doc.next().toJson(),Entity.class));
}
上述查询将获取实体类类型的所有文档,每个实体类文档的“字段”列表将只有最后10条记录。

我在单元测试文件()中找到了使用slice的方法。像这样的东西

newAggregation(
    UserWithLikes.class, 
    match(new Criteria()),
    project().and("likes").slice(2)
);