Если у вас есть документы пользователя, такие как:
{
"_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 и пытается обновить документы в коллекции User на основе значения атрибута author
, которое должно совпадать с ключом документа в User. Он добавляет ключ документа документа Tweet в качестве нового атрибута в документ пользователя.
Если вы не сделали идентификатор пользователя и идентификатор твита ключами документов соответствующих коллекций, вам придется использовать другой запрос. Предположим, документы пользователя, такие как:
{
"_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_id в соответствующем документе Tweet.
person
CodeManX
schedule
19.06.2018