如何通过OData查询仅获取SenseNet中指定文档的计数?
获取符合条件的OData文档计数
要快速得到你指定条件下的文档数量,不用返回完整文档列表的话,直接用OData的计数查询能力就可以了,推荐两种高效的方式:
方式1:直接请求计数端点(最推荐)
这种方式会直接返回纯数字的计数结果,完全避免传输文档数据,性能最优。把你的原查询调整为:
/OData.svc/workspaces/Document/$count?metadata=no&query=InTree:/Root/Sites/Default_Site/workspaces/Document%20AND%20TypeIs:File
核心是在资源路径末尾加上/$count,这样服务会直接返回匹配条件的文件总数。
方式2:在原有查询中添加$count参数
如果你的OData服务支持,也可以在原查询里追加$count=true参数,这样响应会包含文档列表的同时,在响应头部或响应体里带上@odata.count字段(具体位置取决于服务实现)。示例:
/OData.svc/workspaces/Document?$select=*&metadata=no&query=InTree:/Root/Sites/Default_Site/workspaces/Document%20AND%20TypeIs:File&$count=true
不过这种方式还是会返回完整文档数据,所以如果只需要计数的话,方式1是更好的选择。
注意:不同的OData服务对$count的支持可能略有差异,优先测试方式1,如果服务不支持再尝试方式2。
内容的提问来源于stack exchange,提问作者Ankitkumar Tandel
相关产品推荐
相关产品推荐

