博客地址:http://blog.csdn.net/FoxDave

本篇主要讲述SharePoint REST中OData的查询操作。SharePoint REST服务支持很多OData查询字符串操作,可以对你请求的数据进行查询、筛选和排序。

查询返回字段

使用$select查询操作来指定对于既定的列表或列表项(其他集合类的SharePoint数据也可)需要返回哪些字段。可以使用$select=*来返回所有可用的字段。

一般来说,如果不指定$select参数,那么默认REST服务会返回所有可用的字段。然而在一些情况下,一些SharePoint对象包含了非常耗费资源的属性。为了优化REST的性能,这些属性不会包含在默认的查询中,因此必须进行显示声明。比如,SPWeb.EffectiveBasePermissions属性默认是不返回的,必须在$select查询选项中显示声明。

而且,你还可以指定来自其他列表的查阅项字段,如下例:

http://server/site/_api/web/lists('guid')/items?$select=Title,Products/Name&$expand=Products/Name

查询要返回的列表项

使用$filter参数来指定需要SharePoint REST服务返回哪些值,具体参照本文后面的部分。

查询单值查阅项字段

单值查阅项字段在SharePoint REST服务中通常用两个独立的字段来表示。一个表示真实的字段值,另一个表示字段名称。

查询用户

在SharePoint REST服务中,用户使用友好名称(显示名称)来表示,所以不能用域名去做查询。注意用户查询不支持基于Membership形式的认证,并且不支持使用Current操作符使用当前用户的ID来做查询。

查询多值查阅项字段和用户

不支持。

返回结果排序

使用$orderby查询选项来指定如何对返回的结果集进行排序。如果要对多个字段进行排序,使用逗号分隔。你也可以通过在查询中指定asc和desc关键字来指定是升序还是降序排序。

对返回的结果进行分页

使用$top和$skiptoken查询选项来查询返回结果的子集。注意$skip查询选项不支持SharePoint列表项的查询。$top选项跟SQL一样,用来指定你想返回结果集的前多少条信息,比如top 10:

http://server/site/_api/web/lists('<guid>')/items$top=10

$skiptoken选项用来指定跳过多少条信息之后返回结果。

$skiptoken=Paged=TRUE&amp;p_ID=5

注意这种查询是有序的,举个例子来说,你有一个下一页的操作按钮,当第一次返回1-20条结果到点击下一页返回21-40条结果这个过程中,另一个用户删除了列表项3和16。此时你获得的下一页的返回结果中,跳过了2个列表项。

SharePoint REST服务中支持的OData查询操作符

Supported Not supported
Numeric comparisons Lt Le Gt Ge Eq Ne Arithmetic operators (Add, Sub, Mul, Div, Mod) Basic math functions (round, floor, ceiling)
String comparisons startsWith substringof Eq Ne endsWith replace substring tolower toupper trim concat
Date and time functions day() month() year() hour() minute() second() DateTimeRangesOverlap operator Querying as to whether a date time falls inside a recurrent date time pattern

也可以参见下图

本节就阐述到这里。

注意,由于CSDN恶心的bug,文章的发布时间为草稿的创建时间,所以下一篇文章的位置比较靠前,在这里挂一下链接,之后发的内容会尽量注意一下这点,向读者表示歉意。

http://blog.csdn.net/foxdave/article/details/71055076

SharePoint REST API - OData查询操作的更多相关文章

  1. mvc api odata 查询选项之 $inlinecount ,$format 选项

    网上百度“odata 语法”会出来很多结果,其中有一项是比较一致的,那就是odata支持一下几种语法: $filter  条件表达式 -- 对应sql语句的where条件查询,如:/Categorie ...

  2. mvc api odata查询选项之 $inlinecount $format 选项(转)

    出处:http://www.it165.net/pro/html/201505/40236.html 网上百度“odata 语法”会出来很多结果,其中有一项是比较一致的,那就是odata支持一下几种语 ...

  3. OData V4 系列 查询操作

    OData 学习目录 对OData的操作,主要是查询,下面把相关的查询情况列出来,供参考学习,每个操作都有对应的截图,便于理解 默认查询 $expand  查询导航属性关系 ,查询Product相关的 ...

  4. InfluxDB学习之InfluxDB的HTTP API查询操作

    在 InfluxDB学习 的上一篇文章:InfluxDB学习之InfluxDB的HTTP API写入操作 中,我们介绍了使用InfluxDB的HTTP API进行数据写入操作的过程,本文我们再来介绍下 ...

  5. Dynamics 365 We API ODATA语法根据父记录查询子记录,根据子记录查询父记录(附上根据团队,队列名称查成员)

    微软动态CRM专家罗勇 ,回复333或者20190508可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 先举个N:N关系的例子.这里以根据团队的名称查找其所有团队成员的 ...

  6. Windows 商店应用中使用 SharePoint REST API

    前面一篇我们介绍了 Office 365 REST API 的官方工具的使用,本篇我们来看一下 SharePoint REST API 本身的描述.结构和使用方法,以及一些使用经验. 首先来看看Sha ...

  7. [sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表

    写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ...

  8. [sharepoint]Rest api相关知识(转)

    写在前面 最近又开始弄rest api了,通过sharepoint rest api获取站点信息,Items,fields非常方便,再结合OData查询,更是得心应手.这里记录学习的时候用到的知识点, ...

  9. SharePoint REST API - 概述

    博客地址:http://blog.csdn.net/FoxDave SharePoint REST API不同于传统的Server Object Model和Client Object Model ...

随机推荐

  1. Spring Boot之默认连接池配置策略

    注意:如果我们使用spring-boot-starter-jdbc 或 spring-boot-starter-data-jpa “starters”坐标,Spring Boot将自动配置Hikari ...

  2. LeetCode--458--可怜的小猪

    问题描述: 有1000只水桶,其中有且只有一桶装的含有毒药,其余装的都是水.它们从外观看起来都一样.如果小猪喝了毒药,它会在15分钟内死去. 问题来了,如果需要你在一小时内,弄清楚哪只水桶含有毒药,你 ...

  3. Vue.js的后端数据支持:使用Express建立app, 并使用MongoDB数据库。

    需要用到的backed tech stack: Node: JavaScript on the server/backend. That's basically what it is, but mor ...

  4. BASE64图片转字符串

    Java代码图片字符串互转 /** * 将base64字符串转成图片 * TODO * @param imgStr base64图片字符串 * @param path 目标输出路径 * @return ...

  5. SE-Net要点

    关于SE-Net有些很奇妙的点: 1.首先,所谓的SE module加在了BN层后面,这样的话,SE首先应该是对于BN层输出的feature map求取global average pooling,一 ...

  6. python模块安装报错大全

    报错 环境 解决 手动安装pip install mysqlclient 报错: _mysql.c(29) : fatal error C1083: Cannot open include file: ...

  7. csu oj 1344: Special Judge

    Description Given a positive integer n, find two non-negative integers a, b such that a2 + b2 = n. I ...

  8. Spring Boot集成Thymeleaf

    Thymeleaf是一个java类库,是一个xml/xhtml/html5的模板引擎,可以作为mvc的web应用的view层.Thymeleaf提供了额外的模块与Spring MVC集成,所以我们可以 ...

  9. const 内联 枚举 宏

    const 常量   程序运行时在常量表中,系统为它分配内存,在堆栈分配了空间:const常量有数据类型:语句末有分号:有类型检查:可以限制范围 //将所有不希望改变的变量加const修饰 const ...

  10. A Bug's Life(向量偏移)

    A Bug's Life Time Limit : 15000/5000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total ...