gpt4 book ai didi

RethinkDB:​​无法在急切流上调用 `changes`

转载 作者:行者123 更新时间:2023-12-03 09:21:22 24 4
gpt4 key购买 nike

我有一个用户表,每个用户都有很多 friend 。

其中的文档看起来像这样:

{
id: "0ab43d81-b883-424a-be56-32f9ff98f7d2",
username: "testUser1234",
friends: [
"04423c56-1890-4028-b38a-cb9aff7112de" ,
"05e4e613-2131-408c-b0ae-a952f3007405" ,
"0395ee53-8ab0-48cc-aa4e-41aad93b8737"
]
}

我想观察用户好友的变化。像这样的查询将为我提供 friend 列表:

r.db("Test").table("Users").get("0ab43d81-b883-424a-be56-32f9ff98f7d2")("friends").map(function(id) { 
return r.db("Test").table("Users").get(id);
})

但是,当我尝试在末尾抛出 .changes() 时,RethinkDB 告诉我它不起作用:

RqlRuntimeError: Cannot call `changes` on an eager stream in:
r.db("Test").table("Users").get("0ab43d81-b883-424a-be56-32f9ff98f7d2")("friends").map(function(var_19) { return r.db("Test").table("Users").get(var_19); }).changes()

有什么办法可以让它发挥作用吗?恐怕我唯一的选择是订阅 friend 列表(在我的应用程序中)并在更改时将订阅更新为实际的 friend :

r.db("Test").table("Users").getAll(friendId1, friendId2 , friendId3, friendId4).changes()

这不是世界末日,但我对能够完全在数据库中完成这件事感到非常兴奋。

另外,谁能解释一下什么是“渴望流”?我认为这与惰性评估和立即评估有关,但我不知道如何判断标准决定流是否渴望。

最佳答案

this post 的启发,我可以使用以下格式进行查询:

r.db("Test").table('Users').getAll(r.args(
r.db('Test').table('Users').get("0ab43d81-b883-424a-be56-32f9ff98f7d2")('friends')
)).changes()

关于RethinkDB:​​无法在急切流上调用 `changes`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29831276/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com