Thư viện QueriesTìm kiếm và thay thế nhiều chuỗi trong tất cả bài viết
Tìm kiếm và thay thế nhiều chuỗi trong tất cả bài viết
Cập nhật nhiều bài viết bằng một thao tác duy nhất, tìm kiếm/thay thế nội dung.
Với các bài viết được chỉ định bởi biến $postIds, query này sẽ thay thế tất cả các chuỗi trong $search bằng các chuỗi trong $replace, trong tiêu đề, trích dẫn và nội dung của bài viết.
Query này yêu cầu endpoint phải bật Nested Mutations.
query TransformAndExportData(
$postIds: [ID!]!
$search: [String!]!
$replace: [String!]!
) {
posts: posts(
filter: { ids: $postIds }
pagination: { limit: -1 }
sort: { by: ID, order: ASC }
) {
id
rawTitle
rawContent
rawExcerpt
@strReplaceMultiple(
search: $search
replaceWith: $replace
affectAdditionalFieldsUnderPos: [1, 2]
)
@deferredExport(
as: "postAdaptedSources"
type: DICTIONARY
affectAdditionalFieldsUnderPos: [1, 2]
)
}
}
query AdaptDataForMutationInput
@depends(on: "TransformAndExportData")
{
postInputs: _echo(value: $postAdaptedSources)
@underEachJSONObjectProperty(
passValueOnwardsAs: "adaptedSource",
affectDirectivesUnderPos: [1, 2, 3, 4]
)
@applyField(
name: "_objectProperty",
arguments: {
object: $adaptedSource,
by: {
key: "rawTitle"
}
},
passOnwardsAs: "adaptedTitle"
)
@applyField(
name: "_objectProperty",
arguments: {
object: $adaptedSource,
by: {
key: "rawExcerpt"
}
},
passOnwardsAs: "adaptedExcerpt"
)
@applyField(
name: "_objectProperty",
arguments: {
object: $adaptedSource,
by: {
key: "rawContent"
}
},
passOnwardsAs: "adaptedContent"
)
@applyField(
name: "_echo",
arguments: {
value: {
title: $adaptedTitle,
excerpt: $adaptedExcerpt,
contentAs: {
html: $adaptedContent
}
}
},
setResultInResponse: true
)
@export(as: "postInputs")
}
mutation SearchAndReplaceStringsInAllPosts(
$postIds: [ID!]!
)
@depends(on: "AdaptDataForMutationInput")
{
adaptedPosts: posts(
filter: { ids: $postIds }
pagination: { limit: -1 }
sort: { by: ID, order: ASC }
) {
id
postInput: _objectProperty(
object: $postInputs,
by: { key: $__id }
) @remove
update(input: $__postInput) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
post {
title
content
excerpt
}
}
}
}