问题标签 [arangojs]
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.
arangodb - arangosh 可以使用 --javascript.execute 支持 shebang
arangosh
似乎不喜欢在加载的 javascript 文件中使用 shebangs--javascript.execute
我正在为我们的 arangodb 制作系统管理员工具——拥有 root 密码的人会在出现问题时使用这些工具!不会请求许可的工具,将绕过 arangodb 的许可限制。我为此使用了一个unix套接字。
到目前为止,我已经做/opt/arango-tools/bin/arangojs
了:
然后是一个简单的辅助工具/opt/arango-tools/bin/list-users.js
:
但是在运行时它会变成这样:
显然,以开头的行#!
不是有效的 javascript。
建议/解决方法/想法 - 任何人?
java - 如果字符串中包含“-”,例如“3da549f0-0e88-4297-b6af-5179b74bd929”,如何进行全文搜索?
当我索引该字段并像上面的示例一样搜索其中包含“-”的字符串时,Arango 将其视为否定运算符,因此不搜索该字符串。搜索这些包含'-'的文档的解决方案是什么?
node.js - 使用 arangojs 和 aqlQuery 在 ArangoDb 中使用集合名称作为变量时出错
我已经使用 arangojs 几个月了,最近我的一些代码开始失败,这些代码以前可以工作,关于在使用模板字符串和 aqlQuery 时将变量用作集合名称。
我在 Windows 10 上使用 Node.js 4.4.0。
此示例代码显示错误:
我已经在一个干净的 npm 安装上测试了这个,只有 arangojs 4.3.0 和 Node 4.4.0 或 Node 5.5.0(使用 nodist)。
有没有其他人看到模板字符串中的集合名称有问题?
arangodb - 获取arangodb中给定节点的连接节点列表
我在 Arangodb 中构建了一个图表。
我正在努力满足以下要求。
给定一个节点,我需要一个连接到它的所有节点的列表以及它连接到的深度。
例子:
Customer2 -> 在深度 1 处连接到 Customer1,Customer3 -> 在深度 2 处连接到 Customer1,依此类推..
请帮助我实现这一目标。
arangodb - 将数据存储在变量 arangojs 中
在处理 node.js 时,我有一个名为 IoTCollection 的集合,其中包含一个文档
{id:1,传感器:12}
我需要将返回的数据存储到一个变量中
但它返回一个未决的承诺
我应该怎么做?
先感谢您
arangodb - 从 aql 查询数组导入 Arangodb
据我了解,arangoimp 函数可以将一组文档导入到新集合中。
因为我以文档数组的形式输出了复杂连接的输出,我想将其创建为新集合。鉴于此,有没有办法在数组上执行 arangoimp,或者作为查询的一部分,或者说,arangosh?
否则,我的选择是: 1)只需将其吸收并遍历数组并保存文档;或 2) 将数组转储到文件并使用 arangoimp 导入...
也许我在这里遗漏了一些明显的东西,但本周我有一些时间来尝试找出答案。感激地收到所有的想法或建议。
arangodb - 如何在 ArangoDB 中获取图的根节点键?
我在 ArangoDB 中有一个图,其根节点是“X”。现在 "a,b,c,d,e,f" 是 'X' 直接或盛大兄弟姐妹的兄弟姐妹。现在从给定的兄弟节点“a,b,c,d,e或f”我想到达节点“X”。是否有任何通用 AQL 查询可以直接遍历到任何图的根节点?
typescript - 在 Angular2 Web 应用程序中使用 ArangoJS 驱动程序
我正在使用 Angular2 和 Typescript (v1.8.10) 开发一个项目。我们希望将 ArangoDB 数据库中的数据集成到 Web 应用程序中。如果可能的话,我想使用 arangojs 驱动程序。由于 arangojs 模块的类型还不存在(如果它们确实存在,有人可以指点我吗?)我正在尝试使用 allowJs tsc 编译器选项。一切都很好,但是 systemjs 无法加载 arangojs 模块。我的 ts 文件中的以下行(在任何类定义之外):
转译为:
但是,当我加载我的 Web 应用程序时,这 require("arangojs") 会生成以下错误:
欢迎任何有关如何在 Angular2 Web 应用程序中使用 arangojs 驱动程序的建议或建议。
谢谢
更新
我发现了上面提到的错误。该错误是由于我的 system.config.js 中的拼写错误造成的。修复错字后,由于加载 arangojs 依赖项(例如 http、https、querystring 等)时出错,模块无法加载。我推测 require 在幕后使用的模块加载器与 Angular2 使用的 systemjs 不兼容。我能够通过加载缩小的 arangojs 驱动程序
然后使用
在我的打字稿文件中。不过,我更愿意在 typescript 环境中本地使用 arangojs。有没有人在 Angular2 typescript 环境中使用过 arangojs 驱动程序(而不是我上面描述的 hack),如果是这样,你是如何让它工作的?
再次感谢。
node.js - 在 ArangoJS 3.x 中使用 NodeJs 样式的函数回调
是否可以在 ArangoJs 3.x 中使用像函数回调这样的 NodeJ;我已经看到 ArangoJs 3.x 使用.then
方法(承诺).. 但我使用的是 NodeJs 4.4 .. 所以我不能.then
在那里使用方法.. 我可以使用 nodejs 之类的 arangojs 3.x 函数回调吗?
node.js - 如何提高负载下的 ArangoDB 性能(多个并发查询)?
我们使用 ArangoDB 和 PostgreSQL 来存储几乎相同的数据。PostgreSQL 用于执行关系数据库可以很好地执行的一般类型的查询。选择 ArangoDB 来执行图形遍历、查找最短路径等查询。
目前,我们在 PostgreSQL 中有一个包含 160000 条记录的表,在 ArangoDB 中有一个包含相同数量文档的集合。
我们正在开发的 API 将被多个用户同时使用,所以我想检查的第一点是 ArangoDB 和 PostgreSQL 在负载下的表现。我创建了一个简单的负载测试,它作为工作负载使用过滤器对 ArangoDB 和 PostgreSQL 执行简单的选择查询。
该查询使用按日期字段过滤的前 N 个记录/文档。
当我运行负载测试时,对 PostgreSQL 的所有查询都在 0.5 秒内执行,我将用户数量从 10 增加到 100,并且根本不影响执行时间。
当您从单个用户开始时,对 ArangoDB 的相同查询大约需要 2 秒,然后响应时间与并发用户数量成正比增长。对于 30 个并发用户,所有查询在等待 60 秒后都会超时。
我尝试调试 arangojs 连接器并发现:
和这个:
这意味着默认的 arangojs 行为是同时向 ArangoDB 发送不超过 6 个并发查询,这导致所有其余查询都在 Node.js 端排队。我试图增加数量,但没有帮助,现在看起来所有查询都在 ArandoDB 端排队。现在,如果我运行负载并尝试使用 ArangoDB Web 界面执行一些查询,则查询将等待不可预测的时间(取决于目前的用户数量),然后返回结果并告诉我它已被执行在大约 4 秒内,这是不正确的。对我来说,看起来 ArangoDB 一次只能执行一个查询,而所有其他查询都在排队......
我错过了什么吗?是否有任何设置可以调整 ArangoDB 并提高其在负载下的性能?
更新:
我们使用 ArangoDB 3.0 并将其作为具有 1.5 GB RAM 的 Docker 容器(来自官方图像)运行。
样本文件(我们有大约 16 000 个):
AQL 查询: