我有2个收藏集:
我要在用户中存储tweet_id的列表,并在每条推文中存储user_id。在我的json Tweets文件中,我有tweet作者champ。我尝试使用AQL,但未成功,您能帮我吗?
谢谢
ps:我很抱歉这个法语英语
答案 0 :(得分:1)
如果您有用户文档,例如:
{
"_key": "1234",
"name": "John"
}
还有Tweet文档,例如:
{
"_key": "56789",
"message": "Lorem ipsum sit dolor amet",
"author": "1234"
}
然后,您可以使用以下AQL查询:
FOR tweet IN Tweet
UPDATE tweet.author WITH { tweet_key: tweet._key } IN User
RETURN NEW
迭代Tweet集合中的所有文档,并尝试基于属性值author
更新User集合中的文档,该属性值必须与User中的文档密钥相同。它将Tweet文档的文档密钥作为新属性添加到User文档。
如果您没有将用户ID和Tweet ID设置为相应集合的文档密钥,则必须使用其他查询。假设用户文档如下:
{
"_key": "376472856",
"user_id": 1234,
"name": "John"
}
还有Tweet文档,例如:
{
"_key": "8975438957",
"tweet_id": 56789,
"message": "Lorem ipsum sit dolor amet",
"author": 1234
}
然后,您应该在user_id
字段的User collection中创建一个哈希索引(可能是唯一的)并运行以下查询:
FOR tweet IN Tweet
FOR user IN User
FILTER user.user_id == tweet.author
LIMIT 1
UPDATE user WITH { tweet_id: tweet.tweet_id } IN User
RETURN NEW
它将使用与相应的Tweet文档中的tweet_id属性相等的tweet_id属性来扩展用户文档。