|
|
@ -101,12 +101,12 @@ |
|
|
|
% 404:如果找不到文档或集合,则返回 |
|
|
|
% 412:如果给出“ If-Match”标头并且找到的文档具有不同版本,则返回412。响应还将在_rev属性中包含找到的文档的当前修订。此外,将返回属性_id和_key。 |
|
|
|
getDoc(PoolNameOrSocket, CollName, Key) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgGet, Path). |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgGet, Path). |
|
|
|
|
|
|
|
getDoc(PoolNameOrSocket, CollName, Key, Headers) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgGet, Path, ?AgDefQuery, Headers, ?AgDefBody). |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgGet, Path, ?AgDefQuery, Headers, ?AgDefBody). |
|
|
|
|
|
|
|
% 读取单个文档头 |
|
|
|
% HEAD /_api/document/{collection}/{key} |
|
|
@ -123,12 +123,12 @@ getDoc(PoolNameOrSocket, CollName, Key, Headers) -> |
|
|
|
% 404:如果找不到文档或集合,则返回 |
|
|
|
% 412:如果给出“ If-Match”标头并且找到的文档具有不同版本,则返回412。响应还将在Etag标头中包含找到的文档的当前版本。 |
|
|
|
getHead(PoolNameOrSocket, CollName, Key) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgHead, Path). |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgHead, Path). |
|
|
|
|
|
|
|
getHead(PoolNameOrSocket, CollName, Key, Headers) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgHead, Path, ?AgDefQuery, Headers, ?AgDefBody). |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgHead, Path, ?AgDefQuery, Headers, ?AgDefBody). |
|
|
|
|
|
|
|
% 创建文档 |
|
|
|
% POST /_api/document/{collection} |
|
|
@ -167,12 +167,12 @@ getHead(PoolNameOrSocket, CollName, Key, Headers) -> |
|
|
|
% 404:如果collection指定的collection未知,则返回。在这种情况下,响应主体包含一个错误文档。 |
|
|
|
% 409:如果在索引属性中具有相同限定词的文档与现有文档发生冲突并因此违反了该唯一约束,则在单个文档的情况下返回409。在这种情况下,响应主体包含一个错误文档。 |
|
|
|
newDoc(PoolNameOrSocket, CollName, MapData) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, ?AgDefQuery, ?AgDefHeader, eVPack:encodeBin(MapData)). |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, ?AgDefQuery, ?AgDefHeader, eVPack:encodeBin(MapData)). |
|
|
|
|
|
|
|
newDoc(PoolNameOrSocket, CollName, MapData, QueryPars) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, QueryPars, ?AgDefHeader, eVPack:encodeBin(MapData)). |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, QueryPars, ?AgDefHeader, eVPack:encodeBin(MapData)). |
|
|
|
|
|
|
|
% 替换文档 |
|
|
|
% PUT /_api/document/{collection}/{key} |
|
|
@ -208,16 +208,16 @@ newDoc(PoolNameOrSocket, CollName, MapData, QueryPars) -> |
|
|
|
% 404:如果找不到集合或文档,则返回。 |
|
|
|
% 412:如果违反了前提条件,则返回。该响应还将在_rev 属性中包含找到的文档的当前修订。此外,将返回属性_id和_key。 |
|
|
|
replaceDoc(PoolNameOrSocket, CollName, Key, MapData) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, ?AgDefQuery, ?AgDefHeader, eVPack:encodeBin(MapData)). |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, ?AgDefQuery, ?AgDefHeader, eVPack:encodeBin(MapData)). |
|
|
|
|
|
|
|
replaceDoc(PoolNameOrSocket, CollName, Key, MapData, QueryPars) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, QueryPars, ?AgDefHeader, eVPack:encodeBin(MapData)). |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, QueryPars, ?AgDefHeader, eVPack:encodeBin(MapData)). |
|
|
|
|
|
|
|
replaceDoc(PoolNameOrSocket, CollName, Key, MapData, QueryPars, Headers) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, QueryPars, Headers, eVPack:encodeBin(MapData)). |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, QueryPars, Headers, eVPack:encodeBin(MapData)). |
|
|
|
|
|
|
|
% 更新文档 |
|
|
|
% PATCH /_api/document/{collection}/{key} |
|
|
@ -256,16 +256,16 @@ replaceDoc(PoolNameOrSocket, CollName, Key, MapData, QueryPars, Headers) -> |
|
|
|
% 404:如果找不到集合或文档,则返回。 |
|
|
|
% 412:如果违反了前提条件,则返回。该响应还将在_rev 属性中包含找到的文档的当前修订。此外,将返回属性_id和_key。 |
|
|
|
updateDoc(PoolNameOrSocket, CollName, Key, MapData) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, ?AgDefQuery, ?AgDefHeader, eVPack:encodeBin(MapData)). |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, ?AgDefQuery, ?AgDefHeader, eVPack:encodeBin(MapData)). |
|
|
|
|
|
|
|
updateDoc(PoolNameOrSocket, CollName, Key, MapData, QueryPars) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, QueryPars, ?AgDefHeader, eVPack:encodeBin(MapData)). |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, QueryPars, ?AgDefHeader, eVPack:encodeBin(MapData)). |
|
|
|
|
|
|
|
updateDoc(PoolNameOrSocket, CollName, Key, MapData, QueryPars, Headers) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, QueryPars, Headers, eVPack:encodeBin(MapData)). |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, QueryPars, Headers, eVPack:encodeBin(MapData)). |
|
|
|
|
|
|
|
% 删除文档 |
|
|
|
% DELETE /_api/document/{collection}/{key} |
|
|
@ -287,16 +287,16 @@ updateDoc(PoolNameOrSocket, CollName, Key, MapData, QueryPars, Headers) -> |
|
|
|
% 404:如果找不到集合或文档,则返回。在这种情况下,响应主体包含一个错误文档。 |
|
|
|
% 412:如果“如果-match”标头或返回转,并给出找到的文件有不同的版本。响应还将在_rev属性中包含找到的文档的当前修订。此外,将返回属性_id和_key。 |
|
|
|
delDoc(PoolNameOrSocket, CollName, Key) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path). |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path). |
|
|
|
|
|
|
|
delDoc(PoolNameOrSocket, CollName, Key, QueryPars) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, QueryPars). |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, QueryPars). |
|
|
|
|
|
|
|
delDoc(PoolNameOrSocket, CollName, Key, QueryPars, Headers) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, QueryPars, Headers, ?AgDefBody). |
|
|
|
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, QueryPars, Headers, ?AgDefBody). |
|
|
|
|
|
|
|
% 批量文件操作 |
|
|
|
% ArangoDB支持批量处理文档。批量操作影响 单个集合。使用此API变体可使客户端分摊整批文档中的单个请求的开销。不能保证批量操作可以串行执行,ArangoDB 可以并行执行这些操作。这可以转化为大幅的性能提升,尤其是在集群部署中。 |
|
|
@ -320,20 +320,21 @@ delDoc(PoolNameOrSocket, CollName, Key, QueryPars, Headers) -> |
|
|
|
% 404:如果找不到集合,则返回。 |
|
|
|
% 对于该操作的返回 列表 如果文档不存在 或者_rev条件不满足 则返回列表的中包含相关的错误 可能需要在使用的时候过滤正确和非正确的返回文档 |
|
|
|
getDocs(PoolNameOrSocket, CollName, KeyOrMapDataList) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, #{<<"onlyget">> => <<"true">>}, ?AgDefHeader, eVPack:encodeBin(KeyOrMapDataList)). |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, #{<<"onlyget">> => <<"true">>}, ?AgDefHeader, eVPack:encodeBin(KeyOrMapDataList)). |
|
|
|
|
|
|
|
getDocs(PoolNameOrSocket, CollName, KeyOrMapDataList, QueryPars) -> |
|
|
|
LastQueryPars = case QueryPars of |
|
|
|
#{<<"onlyget">> := <<"true">>} -> |
|
|
|
QueryPars; |
|
|
|
#{onlyget := <<"true">>} -> |
|
|
|
QueryPars; |
|
|
|
_ -> |
|
|
|
QueryPars#{<<"onlyget">> => <<"true">>} |
|
|
|
end, |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, LastQueryPars, ?AgDefHeader, eVPack:encodeBin(KeyOrMapDataList)). |
|
|
|
LastQueryPars = |
|
|
|
case QueryPars of |
|
|
|
#{<<"onlyget">> := <<"true">>} -> |
|
|
|
QueryPars; |
|
|
|
#{onlyget := <<"true">>} -> |
|
|
|
QueryPars; |
|
|
|
_ -> |
|
|
|
QueryPars#{<<"onlyget">> => <<"true">>} |
|
|
|
end, |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, LastQueryPars, ?AgDefHeader, eVPack:encodeBin(KeyOrMapDataList)). |
|
|
|
|
|
|
|
% 创建多个文档 |
|
|
|
% POST /_api/document/{collection}#multiple |
|
|
@ -372,12 +373,12 @@ getDocs(PoolNameOrSocket, CollName, KeyOrMapDataList, QueryPars) -> |
|
|
|
% 400:如果正文不包含文档数组的有效 JSON 表示,则返回。在这种情况下,响应正文包含一个错误文档。 |
|
|
|
% 404:collection指定的collection未知时返回。在这种情况下,响应正文包含一个错误文档。 |
|
|
|
newDocs(PoolNameOrSocket, CollName, MapDataList) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, ?AgDefQuery, ?AgDefHeader, eVPack:encodeBin(MapDataList)). |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, ?AgDefQuery, ?AgDefHeader, eVPack:encodeBin(MapDataList)). |
|
|
|
|
|
|
|
newDocs(PoolNameOrSocket, CollName, MapDataList, QueryPars) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, QueryPars, ?AgDefHeader, eVPack:encodeBin(MapDataList)). |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, QueryPars, ?AgDefHeader, eVPack:encodeBin(MapDataList)). |
|
|
|
|
|
|
|
% 替换多个文件 |
|
|
|
% PUT /_api/document/{collection} |
|
|
@ -405,12 +406,12 @@ newDocs(PoolNameOrSocket, CollName, MapDataList, QueryPars) -> |
|
|
|
% 400:如果正文不包含文档数组的有效JSON表示形式,则返回。在这种情况下,响应主体包含一个错误文档。 |
|
|
|
% 404:如果找不到集合,则返回。 |
|
|
|
replaceDocs(PoolNameOrSocket, CollName, MapDataList) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, ?AgDefQuery, ?AgDefHeader, eVPack:encodeBin(MapDataList)). |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, ?AgDefQuery, ?AgDefHeader, eVPack:encodeBin(MapDataList)). |
|
|
|
|
|
|
|
replaceDocs(PoolNameOrSocket, CollName, MapDataList, QueryPars) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, QueryPars, ?AgDefHeader, eVPack:encodeBin(MapDataList)). |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, QueryPars, ?AgDefHeader, eVPack:encodeBin(MapDataList)). |
|
|
|
|
|
|
|
% 更新多个文件 |
|
|
|
% PATCH /_api/document/{collection} |
|
|
@ -441,14 +442,14 @@ replaceDocs(PoolNameOrSocket, CollName, MapDataList, QueryPars) -> |
|
|
|
% 400:如果正文不包含文档数组的有效JSON表示形式,则返回。在这种情况下,响应主体包含一个错误文档。 |
|
|
|
% 404:如果找不到集合,则返回。 |
|
|
|
updateDocs(PoolNameOrSocket, CollName, MapDataList) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
BodyStr = eVPack:encodeBin(MapDataList), |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, ?AgDefQuery, ?AgDefHeader, BodyStr). |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
BodyStr = eVPack:encodeBin(MapDataList), |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, ?AgDefQuery, ?AgDefHeader, BodyStr). |
|
|
|
|
|
|
|
updateDocs(PoolNameOrSocket, CollName, MapDataList, QueryPars) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
BodyStr = eVPack:encodeBin(MapDataList), |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, QueryPars, ?AgDefHeader, BodyStr). |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
BodyStr = eVPack:encodeBin(MapDataList), |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, QueryPars, ?AgDefHeader, BodyStr). |
|
|
|
|
|
|
|
% 删除多个文件 |
|
|
|
% DELETE /_api/document/{collection} |
|
|
@ -470,11 +471,11 @@ updateDocs(PoolNameOrSocket, CollName, MapDataList, QueryPars) -> |
|
|
|
% 202:如果waitForSync为false,则返回。 |
|
|
|
% 404:如果找不到集合,则返回。在这种情况下,响应主体包含一个错误文档。 |
|
|
|
delDocs(PoolNameOrSocket, CollName, KeyOrMapDataList) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
BodyStr = eVPack:encodeBin(KeyOrMapDataList), |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, ?AgDefQuery, ?AgDefHeader, BodyStr). |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
BodyStr = eVPack:encodeBin(KeyOrMapDataList), |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, ?AgDefQuery, ?AgDefHeader, BodyStr). |
|
|
|
|
|
|
|
delDocs(PoolNameOrSocket, CollName, KeyOrMapDataList, QueryPars) -> |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
BodyStr = eVPack:encodeBin(KeyOrMapDataList), |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, QueryPars, ?AgDefHeader, BodyStr). |
|
|
|
Path = <<"/_api/document/", CollName/binary>>, |
|
|
|
BodyStr = eVPack:encodeBin(KeyOrMapDataList), |
|
|
|
agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, QueryPars, ?AgDefHeader, BodyStr). |