我有一个名为存档的Mongo DB - Spring数据文档,其属性为 iucId 和 storageDateTime 。现在,我将使用特定的iucId查询最新存储的存档。我不知道如何询问最新的 storageDateTime 。
询问iucId很简单:
List<Archive> findArchiveByIucId(final String iucId);
但是最新 storageDateTime 的记录是我的问题。
有人可以帮我解决这个问题吗? 非常感谢你的帮助!!
@Document(collection = "Archive")
public class Archive {
@Id
private String id;
private String iucId
private DateTime storageDateTime;
答案 0 :(得分:0)
答案 1 :(得分:0)
以下mongodb查询将返回最新存储的存档,其中包含特定的iucId:
//The '-1' = sort descending (newest to oldest)
db.archive.find({iucId: "zzz"}).sort({storageDateTime: -1}).limit(1);
在Spring数据中,使用:
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;
//...
Query query = new Query();
query.addCriteria(Criteria.where("iucId").is("zzz"));
query.limit(1);
query.with(new Sort(Sort.Direction.DESC, "storageDateTime"));
mongoOperation.find(query, Domain.class);