【发布时间】:2018-04-26 13:42:31
【问题描述】:
我有一个包含 PartitionKey 的集合。我创建了一个接受查询作为参数的存储过程。在这个存储过程中,我正在获取一些要更新的文档,但是在获取它时显示一个错误,说当我使用该方法时提供 PartitionKey
public Task<StoredProcedureResponse<TValue>> ExecuteStoredProcedureAsync<TValue>(Uri storedProcedureUri, [Dynamic(new[] { false, true })] params dynamic[] procedureParams);
使用其他方法时
public Task<StoredProcedureResponse<TValue>> ExecuteStoredProcedureAsync<TValue>(string storedProcedureLink, RequestOptions options, [Dynamic(new[] { false, true })] params dynamic[] procedureParams);
在这种方法中,我将 PartitionKey 作为
new RequestOptions { PartitionKey = new PartitionKey(Undefined.Value)
在存储过程中使用此 RequestOptions 时,不会获取任何文档。
function ABC(query) {
var collection = getContext().getCollection();
var collectionLink = collection.getSelfLink();
var response = getContext().getResponse();
// Validate input.
if (!query) throw new Error("The query is undefined or null.");
tryQueryAndDelete();
function tryQueryAndDelete(continuation) {
var requestOptions = { continuation: continuation };
var isAccepted = collection.queryDocuments(collectionLink, query, requestOptions, function (err, retrievedDocs, responseOptions) {
if (err) throw err;
if (retrievedDocs.length > 0) {
console.log("Doc Found");
} else {
console.log("Doc not Found");
}
});
}
}
有没有这样我可以在不传递 PartitionKey 的情况下获取文档?
【问题讨论】:
-
嗨,现在有更新吗?
-
根据您在聊天中的建议,我必须获取所有文档,更新属性,然后再次保存每个文档分区键,它以这种方式工作。@JayGong
-
太棒了!您可以标记答案以供其他人参考。谢谢
标签: azure azure-cosmosdb