博客地址:http://blog.csdn.net/FoxDavecss
本篇主要講述SharePoint REST中OData的查詢操做。SharePoint REST服務支持不少OData查詢字符串操做,能夠對你請求的數據進行查詢、篩選和排序。web
查詢返回字段api
使用$select查詢操做來指定對於既定的列表或列表項(其餘集合類的SharePoint數據也可)須要返回哪些字段。可使用$select=*來返回全部可用的字段。markdown
通常來講,若是不指定$select參數,那麼默認REST服務會返回全部可用的字段。然而在一些狀況下,一些SharePoint對象包含了很是耗費資源的屬性。爲了優化REST的性能,這些屬性不會包含在默認的查詢中,所以必須進行顯示聲明。好比,SPWeb.EffectiveBasePermissions屬性默認是不返回的,必須在$select查詢選項中顯示聲明。ide
並且,你還能夠指定來自其餘列表的查閱項字段,以下例:性能
http://server/site/_api/web/lists('guid')/items?$select=Title,Products/Name&$expand=Products/Name
優化
查詢要返回的列表項ui
使用$filter參數來指定須要SharePoint REST服務返回哪些值,具體參照本文後面的部分。spa
查詢單值查閱項字段.net
單值查閱項字段在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&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,文章的發佈時間爲草稿的建立時間,因此下一篇文章的位置比較靠前,在這裏掛一下連接,以後發的內容會盡可能注意一下這點,向讀者表示歉意。