【发布时间】:2015-05-08 16:25:16
【问题描述】:
我是 Spring Data MongoDB 的新手,想知道您是否可以帮助我。基本上,我想要实现的是限制文档中嵌入数组的大小。我看过其他帖子,但它没有使用spring数据mongodb( Saving with Java springdata a mongoDB document with capped array ($slice and $sort), MongoDB 2.4's "Limit Number of Elements in an Array after an Update" using C# driver?)。
Sample Document:
{
_id: 1,
scores: [
{ attempt: 1, score: 10 },
{ attempt: 2 , score:8 }
]
}
updateScore() {
Query query = new Query(Criteria.where("id").is(id));
query.fields().slice("scores", -3);
Update update = new Update();
update.push("scores", scores);
mongoOperations.findAndModify(query, update, MyDocument.class);
}
调用 updateScore 方法后,我可以看到添加了新的分数,并且它的大小超过了 3。
<!-- mongodb java driver -->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.13.0</version>
</dependency>
<!-- Spring data mongodb -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.5.4.RELEASE</version>
</dependency>
希望听到您的cmets和建议。
【问题讨论】:
标签: java mongodb spring-data-mongodb