Azure 포털에서 Script Explorer를 사용하여 CosmosDB에서 삭제 사전 트리거를 구현하려고했습니다 (트리거 유형은 "Pre"이고 트리거 작업은 "삭제"임). 내가 원하는 것은 삭제 된 것을 사용하고 "pastDue"속성을 true로 변경하여 새 문서를 만드는 것입니다. 내 컬렉션에서 문서를 삭제 한 후에는 변경 사항을 볼 수 없습니다.삭제 사전 트리거를 사용하여 CosmosDB에서 새 문서를 만들려면 어떻게해야합니까?
누군가 내가 뭘 잘못하고 있는지 말할 수 있습니까? 그리고 트리거가 성공적으로 실행되었는지 아닌지 어떻게 알 수 있습니까? 여기
function markReminderAsPastDue() {
var collection = getContext().getCollection();
var request = getContext().getRequest();
var docToCreate = request.getBody();
docToCreate["pastDue"] = true;
collection.createDocument(collection.getSelfLink(),
docToCreate,
function (err, documentCreated) {
if (err) throw new Error('Error' + err.message);
});
}
내가 내 데이터베이스 핸들러 클래스의 모든 컬렉션에서 모든 문서를 삭제하는 데 사용하는 기능입니다 :
removeItem (item, partitionKey, callback)
{
var options = {
partitionKey: [ partitionKey ? partitionKey: item.email]
};
this.client.deleteDocument(item._self, options,
(err, doc) => {
if (err)
{
LogUtils.error("DBHandler.removeItem "+err.body);
callback(err, null);
}
else
{
callback(null, "success remove Item");
}
});
}
는 요청 옵션에서 preTriggersInclude을 지정 마세요? 트리거는 자동 호출되지 않으므로 트리거가 필요한 각 요청에서 명시 적으로 지정해야합니다. 또한 다음과 같이 collection.createDocument의 반환 값을 확인하십시오. var isAccepted = collection.createDocument (...); if (! isAccepted) throw 새 오류 ("not accepted"); –