Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 两个集合之间的关系Arangodb_Python_Nosql_Arangodb_Aql_Pyarango - Fatal编程技术网

Python 两个集合之间的关系Arangodb

Python 两个集合之间的关系Arangodb,python,nosql,arangodb,aql,pyarango,Python,Nosql,Arangodb,Aql,Pyarango,我有两个收藏: 使用者 推特 我想在用户中存储tweet_id列表,并在每个tweet中存储用户_id。在我的json Tweets文件中,我有tweet author champ。我尝试使用AQL,但没有成功,你能帮助我吗 谢谢 附言:我是一名法国学生,很抱歉,如果您有以下用户文档,我的英语会出现问题: { "_key": "1234", "name": "John" } { "_key": "56789", "message": "Lorem ipsum sit dolor

我有两个收藏:

使用者 推特 我想在用户中存储tweet_id列表,并在每个tweet中存储用户_id。在我的json Tweets文件中,我有tweet author champ。我尝试使用AQL,但没有成功,你能帮助我吗

谢谢


附言:我是一名法国学生,很抱歉,如果您有以下用户文档,我的英语会出现问题

{
  "_key": "1234",
  "name": "John"
}
{
  "_key": "56789",
  "message": "Lorem ipsum sit dolor amet",
  "author": "1234"
}
{
  "_key": "376472856",
  "user_id": 1234,
  "name": "John"
}
{
  "_key": "8975438957",
  "tweet_id": 56789,
  "message": "Lorem ipsum sit dolor amet",
  "author": 1234
}
和推特文档,如:

{
  "_key": "1234",
  "name": "John"
}
{
  "_key": "56789",
  "message": "Lorem ipsum sit dolor amet",
  "author": "1234"
}
{
  "_key": "376472856",
  "user_id": 1234,
  "name": "John"
}
{
  "_key": "8975438957",
  "tweet_id": 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更新用户集合中的文档,该属性值必须与用户中的文档键相同。它将Tweet文档的文档键作为新属性添加到用户文档中

如果没有将用户ID和Tweet ID作为各自集合的文档键,则必须使用不同的查询。让我们假设用户文档如下:

{
  "_key": "1234",
  "name": "John"
}
{
  "_key": "56789",
  "message": "Lorem ipsum sit dolor amet",
  "author": "1234"
}
{
  "_key": "376472856",
  "user_id": 1234,
  "name": "John"
}
{
  "_key": "8975438957",
  "tweet_id": 56789,
  "message": "Lorem ipsum sit dolor amet",
  "author": 1234
}
和推特文档,如:

{
  "_key": "1234",
  "name": "John"
}
{
  "_key": "56789",
  "message": "Lorem ipsum sit dolor amet",
  "author": "1234"
}
{
  "_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文档中的tweet\u id属性相等的属性tweet\u id来扩充用户文档。

非常感谢您的帮助