Azure CosmosDb 存储过程 select 来自字符串数组的查询
Azure CosmosDb stored procedure select query from string array
我正在写一个SP来删除一些记录。所以我需要获取记录 ID 作为字符串数组传递的记录。
function DeleteFn(email, docs) {
var container = getContext().getCollection();
var containerLink = container.getSelfLink();
var documentQuery =
{
'query': 'SELECT * FROM c where c.email = @email and ARRAY_CONTAINS(@arr, c.id) ',
'parameters': [{ 'name': '@email', 'value': email }, { 'name': '@arr', 'value': docs }]
};
container.queryDocuments(containerLink, documentQuery,
function (err, items) {
items.forEach(element => {
container.deleteDocument(element, {}, function (err, responseOptions) {
if (err) throw err;
});
});
}
});
}
其中电子邮件 = 'test@test.com' 和文档 = ["doc1","doc2"]
我收到 JSON.Parse(docs) 的解析错误。
如何执行这个或任何更好的直接删除方法?
方法deleteDocument
的第一个参数应该是documentLink。因此,您需要将代码更改为:
container.deleteDocument(element._self, {}, function (err, responseOptions)
然后,如果您将记录 ID 作为字符串类型传递,则需要像这样更改代码:
'parameters' : [{'name':'@email', 'value':email}, { 'name': '@arr', 'value': JSON.parse(docs) }]
如果您将记录 ID 作为自定义类型传递,您的代码可以正常工作。
'parameters': [{ 'name': '@email', 'value': email }, { 'name': '@arr', 'value': docs }]
我正在写一个SP来删除一些记录。所以我需要获取记录 ID 作为字符串数组传递的记录。
function DeleteFn(email, docs) {
var container = getContext().getCollection();
var containerLink = container.getSelfLink();
var documentQuery =
{
'query': 'SELECT * FROM c where c.email = @email and ARRAY_CONTAINS(@arr, c.id) ',
'parameters': [{ 'name': '@email', 'value': email }, { 'name': '@arr', 'value': docs }]
};
container.queryDocuments(containerLink, documentQuery,
function (err, items) {
items.forEach(element => {
container.deleteDocument(element, {}, function (err, responseOptions) {
if (err) throw err;
});
});
}
});
}
其中电子邮件 = 'test@test.com' 和文档 = ["doc1","doc2"]
我收到 JSON.Parse(docs) 的解析错误。
如何执行这个或任何更好的直接删除方法?
方法deleteDocument
的第一个参数应该是documentLink。因此,您需要将代码更改为:
container.deleteDocument(element._self, {}, function (err, responseOptions)
然后,如果您将记录 ID 作为字符串类型传递,则需要像这样更改代码:
'parameters' : [{'name':'@email', 'value':email}, { 'name': '@arr', 'value': JSON.parse(docs) }]
如果您将记录 ID 作为自定义类型传递,您的代码可以正常工作。
'parameters': [{ 'name': '@email', 'value': email }, { 'name': '@arr', 'value': docs }]