从列表中获取最新的ListItem

时间:2017-12-20 09:08:00

标签: sharepoint microsoft-graph

有没有办法从Microsoft Graph获取 n 一年左右内创建的最新列表项或项目?

到目前为止,我已尝试过:

// .Filter("CreatedDateTime gt 2016-12-18T14:13:30Z")
var news = client.Sites[Root]
    .SiteWithPath(path)
    .Lists[newsListId]
    .Items
    .Request()
    .Filter("CreatedDateTime gt 2016-12-18T14:13:30Z")
    .GetAsync()
    .Result;
// => The request is malformed or incorrect.

// .OrderBy("CreatedDateTime desc")
var news = client.Sites[Root]
    .SiteWithPath(path)
    .Lists[newsListId]
    .Items
    .Request()
    .OrderBy("CreatedDateTime desc")
    .GetAsync()
    .Result;
// => returns data but not in the requested order

//.Filter("year(CreatedDateTime) eq 2017")
var news = client.Sites[Root].SiteWithPath(path)
    .Lists[newsListId]
    .Items
    .Request()
    .Filter("year(CreatedDateTime) eq 2017")
    .GetAsync()
    .Result;
// => ServiceException: Code: itemNotFound
//    Message: The resource could not be found.

1 个答案:

答案 0 :(得分:0)

将结果限制为N结果的查询参数为$ top。见https://developer.microsoft.com/en-us/graph/docs/concepts/query_parameters

我不熟悉你正在使用的SDK,所以我不能给你确切的代码,但是这个URL形式的样本将是

https://graph.microsoft.com/v1.0/sites/root/lists?$top=4

也许你可以试试:

.Top(N)

为了按日期字段过滤Sharepoint列表项目,我没有成功使用/ items /中提供的“createdDateTime”字段。我成功过滤存储在事件字段中的“已创建”时间戳。这是格式:     ... / items /?$ filter = fields /创建了'2017-12-22'

所以看看上面的示例,也许可以尝试:

.Filter("fields/Created lt '2017-12-22'")