We’re overhauling Dgraph’s docs to make them clearer and more approachable. If
you notice any issues during this transition or have suggestions, please
let us know.
Update mutations let you update existing objects of a particular type. With
update mutations, you can filter nodes and set or remove any field belonging to
a type.
We use the following schema to demonstrate some examples.
Schema:
type Author {
id: ID!
name: String! @search(by: [hash])
dob: DateTime
posts: [Post]
}
type Post {
postID: ID!
title: String! @search(by: [term, fulltext])
text: String @search(by: [fulltext, term])
datePublished: DateTime
}
Dgraph automatically generates input and return types in the schema for the
update mutation. Update mutations take filter as an input to select specific
objects. You can specify set and remove operations on fields belonging to
the filtered objects. It returns the state of the objects after updating.
Executing an empty remove {} or an empty set{} doesn’t have any effect on
the update mutation.
updatePost(input: UpdatePostInput!): UpdatePostPayload
input UpdatePostInput {
filter: PostFilter!
set: PostPatch
remove: PostPatch
}
type UpdatePostPayload {
post(filter: PostFilter, order: PostOrder, first: Int, offset: Int): [Post]
numUids: Int
}
For example, an update set mutation using variables:
mutation updatePost($patch: UpdatePostInput!) {
updatePost(input: $patch) {
post {
postID
title
text
}
}
}
Variables:
{
"patch": {
"filter": {
"postID": ["0x123", "0x124"]
},
"set": {
"text": "updated text"
}
}
}
For example an update remove mutation using variables:
mutation updatePost($patch: UpdatePostInput!) {
updatePost(input: $patch) {
post {
postID
title
text
}
}
}
Variables:
{
"patch": {
"filter": {
"postID": ["0x123", "0x124"]
},
"remove": {
"text": "delete this text"
}
}
}
Examples
You can refer to the following
link
for more examples.