Sharepoint 2010客户端对象模型 - 大型库 - 无需迭代即可查找项目

Rus*_*ell 5 sharepoint-2010 sharepoint-clientobject

我有一个大型文档库(目前~6000个文档),我需要根据自定义字段值(库上的自定义列)查找文档.

有没有办法在不迭代所有6000个文档的情况下获取此文档?

我知道迭代必须在某个时刻发生,但我希望它发生在SharePoint服务器端,而不是将它们全部传输到客户端然后挑选文档.

谢谢

小智 3

您可以查询Sharepoint。您发出一个 CAML 查询,该查询在服务器上执行并仅返回与您指定的条件相匹配的项目。您指定要搜索的自定义列的名称并指定要查找的值。为了提高效率,您可以只要求返回几个字段(例如文档 url)。因此,您不需要遍历列表中的文档来查找该项目。

您可以在这里找到一些讨论: http://msdn.microsoft.com/en-us/library/ee956524.aspx,您还可以找到如何通过 javascript 或 silvelight 执行此操作的示例。

示例 CAML:

        CamlQuery camlQuery = new CamlQuery();
    camlQuery.ViewXml =
        @"<View>
            <Query>
              <Where>
                <Eq>
                  <FieldRef Name='FileLeafRef'/>
                  <Value Type='Text'>Test.docx</Value>
                </Eq>
              </Where>
              <RowLimit>1</RowLimit>
            </Query>
          </View>";
Run Code Online (Sandbox Code Playgroud)