如何使用 HTTP 向 ArangoDB 插入数据?
How to insert data to ArangoDB with HTTP?
你能帮我理解如何在现有集合中插入数据吗?集合名称是汽车。我正在尝试向其中插入新数据。我这样做:
curl -X PUT --data-binary @- --dump - http://localhost:8529/_db/testdb/_api/collection/cars/ '{name: "carname"}'
但是之后什么也没有发生。看起来我错过了语法。
我是否正确理解我应该仅在像
这样向数据库发出请求时才使用 /_api/cursor
{"query": "FOR car IN cars RETURN car"}
如果要将新数据插入现有集合,则必须使用 POST 动词,例如:
curl -X POST -d "{ \"field\": \"value\" }" --dump - http://localhost:8529/_db/myDatabase/_api/document?collection=cars
PUT 动词用于替换现有文档。更多示例可以在 Working with Documents using REST.
下的文档中找到
Cursors are used for executing AQL queries through REST API and they use POST, PUT and DELETE verbs.
使用命令 curl --data-binary @- ...
中的 @-
,您要求 curl 从标准输入读取。这意味着在您按下 CTRL-D 之前,该命令不会执行任何操作并且不会完成。但是,如果您按 CTRL-D,它会将数据发送到服务器。
可以指定要发送的数据而无需从标准输入读取。这可以通过 curl --data-binary <data>
完成,<data>
是要发送的 JSON。请注意,它需要有效 JSON 并在您使用的 shell 中正确转义。上述示例中的 '{name: "carname"}'
不正确 JSON(属性名称 name
周围的引号缺失)。它应该是 '{"name": "carname"}'
。
正如@yojimbo87 指出的那样,插入操作应该通过 HTTP POST 而不是 PUT 发送,集合名称应该作为 URL 参数传递。
完整命令如下:
curl -X POST --data-binary '{"name": "carname"}' --dump - "http://localhost:8529/_db/testdb/_api/document?collection=cars"
以上内容在 Bash 中有效,但是在 Windows 命令行中无效,因为那里的字符串不应包含在 '
中,而是"
.
你能帮我理解如何在现有集合中插入数据吗?集合名称是汽车。我正在尝试向其中插入新数据。我这样做:
curl -X PUT --data-binary @- --dump - http://localhost:8529/_db/testdb/_api/collection/cars/ '{name: "carname"}'
但是之后什么也没有发生。看起来我错过了语法。
我是否正确理解我应该仅在像
这样向数据库发出请求时才使用/_api/cursor
{"query": "FOR car IN cars RETURN car"}
如果要将新数据插入现有集合,则必须使用 POST 动词,例如:
curl -X POST -d "{ \"field\": \"value\" }" --dump - http://localhost:8529/_db/myDatabase/_api/document?collection=cars
PUT 动词用于替换现有文档。更多示例可以在 Working with Documents using REST.
下的文档中找到Cursors are used for executing AQL queries through REST API and they use POST, PUT and DELETE verbs.
使用命令 curl --data-binary @- ...
中的 @-
,您要求 curl 从标准输入读取。这意味着在您按下 CTRL-D 之前,该命令不会执行任何操作并且不会完成。但是,如果您按 CTRL-D,它会将数据发送到服务器。
可以指定要发送的数据而无需从标准输入读取。这可以通过 curl --data-binary <data>
完成,<data>
是要发送的 JSON。请注意,它需要有效 JSON 并在您使用的 shell 中正确转义。上述示例中的 '{name: "carname"}'
不正确 JSON(属性名称 name
周围的引号缺失)。它应该是 '{"name": "carname"}'
。
正如@yojimbo87 指出的那样,插入操作应该通过 HTTP POST 而不是 PUT 发送,集合名称应该作为 URL 参数传递。
完整命令如下:
curl -X POST --data-binary '{"name": "carname"}' --dump - "http://localhost:8529/_db/testdb/_api/document?collection=cars"
以上内容在 Bash 中有效,但是在 Windows 命令行中无效,因为那里的字符串不应包含在 '
中,而是"
.