尊敬的宇宙同伴,
我正在使用CosmosTrigger创建Azure函数(Python),
要实现“如果不存在,请插入”功能,我使用唯一键“名称”配置了target_collection。
示例:
{"name": "John", "id": "1"}
=>确定[{"name": "John", "id": "2"}, {"name": "Mary", "id": "3"}]
=> System.Private.CoreLib:执行函数:Functions.CosmosTrigger时发生异常。 Microsoft.Azure.DocumentDB.Core:具有指定ID的实体已存在于系统中。唯一键“名称”:“ John”已存在于target_collection中。因此outdocs:func.Out [func.Document],outdocs.set()返回冲突409,并且“ Mary”从未写入target_collection。
重要提示:当我将带有项目数组的json从Data Explorer上传到target_collection时,所有冲突均返回错误,但所有项目均得到处理。 当我尝试从Azure函数编写它时,第一次冲突会引发一个错误,并且其余项目永远都无法到达target_collection。
我的问题:
def main(docs: func.DocumentList, outdocs: func.Out[func.Document]) -> str:
compl_docs = func.DocumentList()
compl_docs_dict = {
"name": "John",
"id": "2"
}
compl_docs.append(func.Document.from_dict(compl_docs_dict))
compl_docs_dict = {
"name": "Mary",
"id": "3"
}
compl_docs.append(func.Document.from_dict(compl_docs_dict))
outdocs.set(compl_docs)
答案 0 :(得分:0)
解决方案 这是在宇宙中完成不存在插入的方式: