【发布时间】:2020-06-30 05:19:10
【问题描述】:
我有一个场景,我需要在我的 Ravendb 数据库中找到最大的文档。
当我在 Ravendb Studio 中选择任何给定文档时,大小会显示在“属性”部分,在此屏幕截图中以红色圈出:
我可以运行一个查询来按此 Size 属性对文档进行排序,以便我可以识别最大的文档吗?
【问题讨论】:
我有一个场景,我需要在我的 Ravendb 数据库中找到最大的文档。
当我在 Ravendb Studio 中选择任何给定文档时,大小会显示在“属性”部分,在此屏幕截图中以红色圈出:
我可以运行一个查询来按此 Size 属性对文档进行排序,以便我可以识别最大的文档吗?
【问题讨论】:
也许可以编写一个计算对象大小的方法,可能使用反射。
然后,创建一个带有字段“size”的static Map Index,
并使用您将在索引中的“其他来源”中提供的方法设置它
见https://ravendb.net/docs/article-page/4.2/Csharp/studio/database/indexes/create-map-index#additional-sources
然后你可以查询这个索引并按'size'字段排序
fyi - 您可以使用以下端点获取特定的文档大小:
{yourServerUrl}/databases/{yourDatabaseName}/docs/size?id={yourDocumentId}
了解 ravenDB 的 rest api:
https://ravendb.net/docs/article-page/4.2/csharp/client-api/rest-api/rest-api-intro
【讨论】: