You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Morphia中实现带排序查询的findAndModify,替换已弃用的order方法

解决方案

Morphia 1.6.1 版本中order()方法已正式标记为废弃,统一使用sort()方法作为替代实现排序逻辑,两者功能完全等效,参数规则也保持兼容。

调整后的代码示例

final Query<Entity> query = datastore.createQuery(Entity.class)
    .field("status").equal(Status.OPEN)
    // 替换原order()方法为sort(),可直接传入原有的Sort参数
    .sort(Sort.ascending("lastUsed"));

final UpdateOperations<Entity> updateOperations = datastore
    .createUpdateOperations(Entity.class)
    .set("lastUsed", ZonedDateTime.now());

final Entity entity = datastore.findAndModify(query, updateOperations);

扩展用法说明

  • 多字段排序场景下,直接向sort()方法传入多个Sort对象即可,示例:sort(Sort.ascending("lastUsed"), Sort.descending("createTime"))
  • 也支持字符串形式的排序规则,和旧版order()的字符串参数用法完全一致:sort("-lastUsed")代表按lastUsed字段降序,sort("lastUsed")代表按lastUsed字段升序

内容的提问来源于stack exchange,提问作者Patrick Rode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:36:02