FaunaDB의 원자 증가/감소
I talk about how to atomically increment/decrement values in FaunaDB.
신용 거래
여기에 원래 답변이 있습니다: https://news.ycombinator.com/item?id=24618998 .
암호
다음과 같은
article
스키마가 있다고 가정합니다.// Schema
Article {
slug: string;
likes: number;
}
원자적으로 증가하려면
likes
두 개의 매개변수를 사용하여 Update()
를 호출해야 합니다.키 값을 업데이트하려면 두 개의 매개변수를 사용하여
Add()
를 호출합니다.Select()
키에 대한 경로를 사용하여 현재 값 가져오기-1
전달)// Query
documentReference; // Assuming this is available
Update(
documentReference,
{
data: {
likes: Add(
Select(['data', 'likes'], Get(documentReference)),
1
)
}
}
)
문서 참조를 알 수 없고 다른 함수의 출력으로 얻는 상황에서
Update()
에서 Lambda()
를 호출합니다. 예를 들어, allArticles
로 문서를 찾을 수 있도록 terms
가 data.slug
인 인덱스slug
가 있다고 가정합니다. 일치하는 모든 문서에서 원자적으로 증가likes
하려면:// Query
Map(
Paginate(
Match(
Index('allArticles'),
'article-about-faunadb'
)
),
Lambda(
'X',
Update(
Var('X'),
{
data: {
likes: Add(
Select(['data', 'likes'], Get(Var('X'))),
1
)
}
}
)
)
)
건배!
Reference
이 문제에 관하여(FaunaDB의 원자 증가/감소), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/karmasakshi/atomic-increment-decrement-in-faunadb-57n7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)