2个集合Arangodb之间的关系
Relationship between 2 collections Arangodb
我有 2 个合集:
- 用户
- 推文
我想在用户中存储 tweet_id 的列表,并在每条推文中存储 user_id。在我的 json 推文文件中,推文作者 champ.I 尝试使用 AQL 但我没有成功,你能帮我吗?
谢谢
ps: 我是法国学生,很抱歉英语这么烂
如果您有像这样的用户文档:
{
"_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 文档的文档密钥作为新属性添加到用户文档。
如果您没有将用户 ID 和推文 ID 作为相应集合的文档键,则必须使用不同的查询。假设用户文档如下:
{
"_key": "376472856",
"user_id": 1234,
"name": "John"
}
和 Tweet 文档,例如:
{
"_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_id 属性的属性来扩充用户文档。
我有 2 个合集:
- 用户
- 推文
我想在用户中存储 tweet_id 的列表,并在每条推文中存储 user_id。在我的 json 推文文件中,推文作者 champ.I 尝试使用 AQL 但我没有成功,你能帮我吗?
谢谢
ps: 我是法国学生,很抱歉英语这么烂
如果您有像这样的用户文档:
{
"_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 文档的文档密钥作为新属性添加到用户文档。
如果您没有将用户 ID 和推文 ID 作为相应集合的文档键,则必须使用不同的查询。假设用户文档如下:
{
"_key": "376472856",
"user_id": 1234,
"name": "John"
}
和 Tweet 文档,例如:
{
"_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_id 属性的属性来扩充用户文档。