• 删除文档
删除文档仅在 RT 模式 下支持以下表类型:
仅包含 RT 表的分布式表作为本地或远程代理。
你可以根据文档的 ID 或某些条件从表中删除现有文档。
此外,批量删除 可用于删除多个文档。
删除文档可以通过 SQL 和 JSON 接口完成。
对于 SQL,成功操作的响应将指示删除的行数。
对于 JSON,使用 json/delete 端点。服务器将响应一个 JSON 对象,指示操作是否成功以及删除的行数。
建议使用 表截断 来删除表中的所有文档,因为这是一个更快的操作。
在此示例中,我们将从名为 test 的表中删除所有符合全文查询 test document 的文档:
SQL:
mysql> SELECT * FROM TEST;
+------+------+-------------+------+
| id | gid | mva1 | mva2 |
+------+------+-------------+------+
| 100 | 1000 | 100,201 | 100 |
| 101 | 1001 | 101,202 | 101 |
| 102 | 1002 | 102,203 | 102 |
| 103 | 1003 | 103,204 | 103 |
| 104 | 1004 | 104,204,205 | 104 |
| 105 | 1005 | 105,206 | 105 |
| 106 | 1006 | 106,207 | 106 |
| 107 | 1007 | 107,208 | 107 |
+------+------+-------------+------+
8 rows in set (0.00 sec)
mysql> DELETE FROM TEST WHERE MATCH ('test document');
Query OK, 2 rows affected (0.00 sec)
mysql> SELECT * FROM TEST;
+------+------+-------------+------+
| id | gid | mva1 | mva2 |
+------+------+-------------+------+
| 100 | 1000 | 100,201 | 100 |
| 101 | 1001 | 101,202 | 101 |
| 102 | 1002 | 102,203 | 102 |
| 103 | 1003 | 103,204 | 103 |
| 104 | 1004 | 104,204,205 | 104 |
| 105 | 1005 | 105,206 | 105 |
+------+------+-------------+------+
6 rows in set (0.00 sec)query的 JSON 格式包含一个用于全文搜索的子句,语法与 JSON/update 中的相同。
PHP:
Python:
Javascript:
java:
C#:
TypeScript:
Go:
以下示例展示了如何从名为 test 的表中删除 id 为 1 的文档:
SQL:
对于 JSON,
id表示应删除的行的id。
PHP:
Python:
Javascript:
java:
C#:
TypeScript:
Go:
以下示例展示了如何删除 id 匹配给定值的文档,删除操作发生在名为 test 的表中:
请注意,使用 id=N 或 id IN (X,Y) 的删除形式是最快的,因为它们在删除文档时无需执行搜索操作。 还要注意,响应中只包含第一个被删除文档的 id,并显示在相应的 _id 字段中。
SQL:
PHP:
Manticore SQL 允许在 DELETE 语句中使用复杂条件。
例如,以下示例展示了如何从名为 test 的表中删除满足全文查询 test document 且属性 mva1 大于 206 或 mva1 值为 100 或 103 的文档:
SQL:
以下是从集群 cluster 中的表 test 删除文档的示例。请注意,当从复制集群中的表中删除行时,必须同时提供集群名称和表名称属性:
SQL:
cluster用于 JSON 中,表示包含所需表的复制集群的名称。
PHP:
Python:
Javascript:
java:
C#:
TypeScript:
Go:
批量删除
您还可以通过 /bulk 端点在单个调用中执行多个删除操作。该端点仅适用于 Content-Type 设置为 application/x-ndjson 的数据。数据应以换行分隔的 JSON (NDJSON) 格式编写。简而言之,这意味着每一行应包含一个 JSON 语句,并以换行符 或可能的 结尾。
JSON:
PHP:
Python:
Javascript:
java:
C#:
TypeScript:
Go:
最后更新于