gpt4 book ai didi

arangodb AQL 如何修改嵌套数组中对象的值?

转载 作者:行者123 更新时间:2023-12-02 19:03:44 30 4
gpt4 key购买 nike

我的文档是这样组织的:

{
"email": "tyler_li@126.com",
"name": "tyler",
"address": {
"street": "Beijing Road",
"zip": 510000
},
"likes": [
"running",
{
"movie": "Star Wars"
}
]
}

我在修改“movie”的值时遇到问题。您能帮我看看如何使用 AQL 修改该值吗?

谢谢!

最佳答案

应该执行以下查询。我将解释作为注释放在查询中。我的示例假设文档存在于名为 collection 的集合中:

FOR doc IN collection
/* any filter condition to find the document(s) in question.
you should make sure this uses an index if there is a substantial
number of documents in the collection */
FILTER doc.name == 'tyler'

/* enumerate the old likes and return them as is if they are not
of type object or do not have a 'movie' attribute. If they are
objects and have a 'movie' attribute, patch them with a 'movie'
value of 'whatever' */
LET newLikes = (
FOR oldLike IN doc.likes
RETURN
(TYPENAME(oldLike) == 'object' && HAS(oldLike, 'movie')) ?
{ movie: 'whatever' } :
oldLike
)

/* finally update the matching document(s) with the new likes */
UPDATE doc WITH { likes: newLikes } IN collection

关于arangodb AQL 如何修改嵌套数组中对象的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46700071/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com