我有 2 个系列:
- 用户
- 鸣叫
我想在用户中存储 tweet_id 列表,并在每条推文中存储 user_id。在我的 json Tweets 文件中,我有推文作者 champ。我尝试使用 AQL 但我没有成功,你能帮帮我吗?
谢谢
ps:我是法国学生,对不起这个破英语
如果您有以下用户文档:
{
"_key": "1234",
"name": "John"
}
和推文文件,如:
{
"_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 集合中的所有文档,并尝试根据属性 value 更新 User 集合中的文档,该属性值author
必须与 User 中的文档键相同。它将 Tweet 文档的文档键作为新属性添加到 User 文档。
如果您没有将 User ID 和 Tweet ID 作为相应集合的文档键,那么您必须使用不同的查询。让我们假设用户文档如下:
{
"_key": "376472856",
"user_id": 1234,
"name": "John"
}
和推文文件,如:
{
"_key": "8975438957",
"tweet_id": 56789,
"message": "Lorem ipsum sit dolor amet",
"author": 1234
}
然后你应该在字段的用户集合中创建一个哈希索引(可能是唯一的)user_id
并运行以下查询:
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_id 等于相应 Tweet 文档中的 tweet_id 属性。