0
我有一個包含一些文檔的集合。在我的應用程序中,我先創建這個集合,然後插入文檔。此外,根據需要,我還需要截斷(刪除所有文檔)集合。使用文檔數據庫的Java API我寫了下面的代碼爲我的這個目的─Azure文檔數據庫 - Java 1.9.5 |授權錯誤
DocumentClient documentClient = getConnection(masterkey, server, portNo);
List<Database> databaseList = documentClient.queryDatabases("SELECT * FROM root r WHERE r.id='" + schemaName + "'", null).getQueryIterable().toList();
DocumentCollection collection = null;
Database databaseCache = (Database)databaseList.get(0);
List<DocumentCollection> collectionList = documentClient.queryCollections(databaseCache.getSelfLink(), "SELECT * FROM root r WHERE r.id='" + collectionName + "'", null).getQueryIterable().toList();
// truncate logic
if (collectionList.size() > 0) {
collection = ((DocumentCollection) collectionList.get(0));
if (truncate) {
try {
documentClient.deleteDocument(collection.getSelfLink(), null);
} catch (DocumentClientException e) {
e.printStackTrace();
}
}
} else { // create logic
RequestOptions requestOptions = new RequestOptions();
requestOptions.setOfferType("S1");
collection = new DocumentCollection();
collection.setId(collectionName);
try {
collection = documentClient.createCollection(databaseCache.getSelfLink(), collection, requestOptions).getResource();
} catch (DocumentClientException e) {
e.printStackTrace();
}
與上面的代碼我能夠成功地創建一個新的集合。另外,我還可以在此集合中插入文檔。但截斷收集我收到以下錯誤 -
com.microsoft.azure.documentdb.DocumentClientException: The input authorization token can't serve the request. Please check that the expected payload is built as per the protocol, and check the key being used. Server used the following payload to sign: 'delete
colls
eyckqjnw0ae=
我正在使用Azure文檔數據庫Java API版本1.9.5。 如果您可以指出我的代碼中的錯誤或者是否有其他更好的方法來截斷收集,那將會非常有幫助。我非常感謝這裏的任何幫助。