问题标签 [datascript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
208 浏览

clojurescript - 在 Datascript 中,如何从另一个值创建新属性?

尝试创建一个新属性,其中值是对同一实体的不同属性进行转换的结果。所以,假设我有一个数据库,其中每个实体都有属性:content。我希望每个被调用的实体都有一个附加属性,:transformed其值是将函数f应用于:content. 我将如何以惯用的方式有效地解决这个问题?当前尝试通过执行事务并将新属性的值分配给应用于查询该实体的原始属性值的函数的值来做到这一点。

如果不是很明显,我对 Datalog 和 Datascript 还很陌生

0 投票
1 回答
74 浏览

clojure - 在函数中包装 Datascript 查询?

使用 Datascript 遇到一个看似奇怪的问题。出于某种原因,当我在没有将其包装在函数中的情况下运行此查询时,一切正常。但是一旦我将它包装在一个函数中,它就会为数据库中的每个实体返回 :block/content 的值。我很困惑,因为过去我在包装其他 Datascript 查询方面没有遇到任何问题。有没有比我更有经验的 Datascript 看到任何问题?

编辑:这里解决

0 投票
1 回答
172 浏览

clojure - 如何查找 Datascript 中的多基数属性是否包含元素?

我有一个像这样的 Datascript 数据库:

:block/children包含:block/id其他块

我一直在尝试编写一个查询来查找哪个块有另一个块作为其子块。

这是我尝试过的示例:

我只是拿回空集作为回报。我应该如何打扮?block-id才能取回?block-id作为其孩子之一的区块的实体 ID?(每个块只有一个父块)

0 投票
1 回答
693 浏览

c# - 如何从 Puppeteer chrome session C# 获取 cookie?

我需要从 puppeteer chrome 会话中获取特定网站的 cookie 并将这些 cookie 添加到脚本中。这是我正在执行的获取 cookie 表单页面的代码:

但它返回:

Id = 7315,状态 = WaitingForActivation,方法 =“{null}”,结果 =“{尚未计算}”

我尝试过的其他方式:

这两种方法都不适合我。我做错了什么?

0 投票
1 回答
76 浏览

clojure - 在服务器上存储老鼠的最快和最脏的方法是什么?

定期,在我超级简单的网络应用程序上,我想将我的应用程序状态(在试剂原子中)重置为原始默认值。然而,在我这样做之前,我想将我被污染的应用程序状态发送到服务器以进行囤积。它将包含有关用户在我的应用程序中所做的事情的数据。我可能想稍后将那个应用程序状态检索到我的前端。我什至可以从我存储它的地方得到那个随机数,然后把它换回去,然后看到我的应用程序,就像它被重置之前一样。

那么,为了让所有这些酷酷的事情都在进行,什么是最快和最肮脏的方法来把那个鼠尾草塞进某个地方呢?

每次重置我的应用程序时,我都希望存储该应用程序状态。用户在会话中多次重置应用程序。因此,将有很多应用程序状态的实例存储在服务器上......无论是单个用户会话还是跨不同用户会话。我也可能想在服务器上做一些事情......浏览存储的状态,也许制作新的端点,我可以在其中对它们进行分析等等。因此,无论如何,它的存储将是非常好的能够细读服务器端。许多在线解决方案看起来都很棒,但看起来……很深。

我怎样才能轻松开始呢?如果这是那些更复杂的解决方案的一个简单的初始步骤,很酷......我可以稍后扩展。旁注:Crux 会很酷,但看起来很复杂。我需要一个简单的坡道。我在前端使用试剂。我对任何简单的 ajax 类型工具都很满意。我不确定如何在客户端打包状态并在服务器端解包以进行存储。对不起,这里有点宽泛的问题:我只是想继续在我的项目中获得乐趣,而不是陷入两周的兔子洞。我可能会被困在那里,永远不会出现。

0 投票
1 回答
104 浏览

clojure - 如何在 Datalog/DataScript/Datomic 上对包括缺少属性的实体的值求和

我正在学习 Datalog/DataScript/Datomic。为此,我在 DataScript 上设置了一个简单的分类帐数据库来使用。到目前为止,它基本上由一组帐户和一个具有属性的记录列表:entry.record/account:entry.record/amount. 现在,我试图通过将:entry.record/amount每个帐户的所有值相加来获得所有帐户的余额。此查询为我提供了在分类帐上有记录的所有帐户的余额:

但是我有一些帐户仍然没有注册任何记录,并且它们没有出现在这里。我想进行一个包含它们的查询,并以 0 值列出。我一直在玩or-join并将missing?这些帐户包含在查询中,但我不知道如何将帐户的金额设为 0。例如,这个查询:

由于can't assign a value toQuery for unknown vars: [?amount]的第二部分,消息引发异常。or-join?amount

0 投票
1 回答
37 浏览

datomic - 数据脚本中的 Datomic id

我在服务器端使用 datomic,客户端上有多个试剂原子,现在正在尝试在客户端上尝试数据脚本。

目前,我正在通过初始 api 加载传递嵌套结构,其中包含 datomic pull 查询的结果。它非常简洁,并且工作正常。

但是,现在希望探索 datascript 的潜在好处。卖点似乎允许将规范化保留到属性级别。但是,我遇到了最初的障碍。Datascript 不是,正如我想象的(也许,希望......),只是将您的 datomic 数据库子集化并将其复制到客户端的方法。问题是,datomic 的实体 id 不能共享给 datascript,特别是 - 当您将transact!实体放入 datascript 时,会为每个实体发布一个新的 eid(datascript's)。

我还没有解决所有的后果,但似乎有必要存储:datomic-id在 datascript 中,除了 datascript 自己新发布的:db/id,并且 ref 类型将使用 datascript 的 id,而不是 datomics。这可能会使同步回到 datomic 变得复杂,感觉它可能会产生很多潜在的陷阱,并且不像我希望的那样同构。但仍在努力。有人可以在这里分享经验吗?也许有一个解决方案...

更新: 想知道是否有一个解决方案是禁止:db/id在客户端使用 datomic,通过将它们从初始负载中过滤出来来强制执行;根本没有将它们传递给客户。然后任何客户端 - > 服务器通信都必须使用(服务器生成的)slug,它们在初始加载中传递。因此,所有实体在客户端上都会有不同的 id,但是我们禁止将服务器 id 传递给客户端,因此如果客户端 id 不小心传递给服务器,可能会说 eid 未找到。这可能还有更多问题,尚未解决。

在传递给客户端并插入客户端时,您还必须考虑实体,而不是 datoms,以便在那里创建正确的 refs(或者如果争吵,也许可以插入一棵树)。

所以我发现 datomic/datascript 伙伴关系当然不仅仅是“序列化数据库的一部分”——如果在服务器上使用 datascript 可能会起作用,这根本不是这里的用例(数据库持久性被要求)。

0 投票
1 回答
100 浏览

clojure - datomic / datascript 初学者 - 我们可以有多个模式

让我开始的非常基本的问题。假设我有一个按国家/地区划分的销售数据库:

[{:sales/country "CN" :sales/amount 1000 :sales/account "XYZ"} ...]

我还想列出有关每个国家/地区的事实清单,例如:

[{:country/short-name "CN" :country/long-name "China" ...}]

然后进行“列出在中国发生的所有销售(使用长名称)”类型的查询。

那是一个数据库吗?我如何明确有两种不同的模式?我是否先处理第一个模式,然后处理销售数据,然后再处理国家模式和数据?

编辑:抱歉我的问题不清楚。这是现场示例:

我能够运行查询来加入表并获得我想要的结果。我不明白定义我的模式的最佳实践是什么。它只是其中的一个模式还是两个模式,每个表一个模式。我可以这样做:

有没有更好的方法在模式中定义国家/代码和销售/国家代码是相同的“键”?

谢谢,

0 投票
1 回答
59 浏览

clojure - 如何查询多个值的属性?

在数据脚本1.3.0上测试

数据:

尝试运行下面的查询以查找喜欢运动的人,但返回了空集。

如何正确制定查询以获得以下预期结果?

0 投票
2 回答
67 浏览

clojure - 为什么逻辑“和”谓词不起作用?

在数据脚本1.3.0上测试

数据:

尝试使用and以下逻辑谓词查询姓名为 Smith 且年龄超过 18 岁的人,为什么它返回未过滤的整个集合?

然后更改为使用离散谓词进行查询并按预期获得满意的结果。

是否datomic或通常只支持分散datascriptdatalog离散子句的数据模式?传统的逻辑运算and等在这里不兼容吗?