FQL v4 will be decommissioned on June 30, 2025. Ensure that you complete your migration from FQL v4 to FQL v10 by that date. For more details, review the migration guide. Contact support@fauna.com with any questions. |
Create a function
Creating and updating a function requires:
|
Solution
Use the CreateFunction
function:
Let’s create a function to allow authors to create new blog posts. We’ll set it up to allow the author to provide a title and body. This way authors are constrained by what data they can store on a post document.
{
ref: Function("create_post"),
ts: 1622572663690000,
name: 'create_post',
body: Query(Lambda(["title", "body"], Create(Collection("posts"), {"data": {"title": Var("title"), "body": Var("body")}})))
}
{'ref': Ref(id=create_post, collection=Ref(id=functions)), 'ts': 1622572667700000, 'name': 'create_post', 'body': Query({'api_version': '4', 'lambda': ['title', 'body'], 'expr': {'create': {'collection': 'posts'}, 'params': {'object': {'data': {'object': {'title': {'var': 'title'}, 'body': {'var': 'body'}}}}}}})}
map[body:{[123 34 97 112 105 95 118 101 114 115 105 111 110 34 58 34 52 34 44 34 108 97 109 98 100 97 34 58 91 34 116 105 116 108 101 34 44 34 98 111 100 121 34 93 44 34 101 120 112 114 34 58 123 34 99 114 101 97 116 101 34 58 123 34 99 111 108 108 101 99 116 105 111 110 34 58 34 112 111 115 116 115 34 125 44 34 112 97 114 97 109 115 34 58 123 34 111 98 106 101 99 116 34 58 123 34 100 97 116 97 34 58 123 34 111 98 106 101 99 116 34 58 123 34 98 111 100 121 34 58 123 34 118 97 114 34 58 34 98 111 100 121 34 125 44 34 116 105 116 108 101 34 58 123 34 118 97 114 34 58 34 116 105 116 108 101 34 125 125 125 125 125 125 125]} name:create_post ref:{create_post 0xc000109ec0 0xc000109ec0 <nil>} ts:1622572622400000]
ObjectV(ref: RefV(id = "create_post", collection = RefV(id = "functions")),ts: LongV(1622572599150000),name: StringV(create_post),body: QueryV(System.Collections.Generic.Dictionary`2[System.String,FaunaDB.Query.Expr]))
{
ref: Function("create_post"),
ts: 1624310578910000,
name: 'create_post',
body: Query(Lambda(["title", "body"], Create(Collection("posts"), {data: {title: Var("title"), body: Var("body")}})))
}
Is this article helpful?
Tell Fauna how the article can be improved:
Visit Fauna's forums
or email docs@fauna.com
Thank you for your feedback!