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()
2つのパラメータを指定します.Add()
2つのパラメータを指定します.Select()
キーへのパスで、現在の値を取得するには-1
減少する// Query
documentReference; // Assuming this is available
Update(
documentReference,
{
data: {
likes: Add(
Select(['data', 'likes'], Get(documentReference)),
1
)
}
}
)
ドキュメント参照が既知でない場合には、別の関数の出力として取得しますUpdate()
インLambda()
. 例えば、インデックスがあるとしますallArticles
with terms
ASdata.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