Delete()
この操作は、フィルター式または ID 配列によってエンティティを削除します。
Status Delete(const DeleteRequest& request, DeleteResponse& response)
リクエスト構文
auto request = DeleteRequest()
.WithDatabaseName(db_name)
.WithCollectionName(collection_name)
.WithPartitionName(partition_name)
.WithFilter(filter)
.WithFilterTemplates(value)
.WithIDs(id_array);
リクエストメソッド:
-
WithDatabaseName(const std::string& db_name)対象のデータベース名を設定します。空の場合は、デフォルトのデータベースが適用されます。
-
WithCollectionName(const std::string& collection_name)コレクションの名前を設定します。
-
WithPartitionName(const std::string& partition_name)パーティションの名前を設定します。空の場合は、デフォルトのパーティションが適用されます。
-
WithFilter(const std::string& filter)フィルター式を設定します。
-
AddFilterTemplate(std::string key, nlohmann::json&& filter_template)フィルターテンプレートを追加します。これは
WithFilter()が設定されている場合にのみ有効です。詳細については、フィルターテンプレート を参照してください。 -
WithFilterTemplates(std::unordered_map<std::string, nlohmann::json>&& filter_templates)フィルターテンプレートを設定します。これは
WithFilter()が設定されている場合にのみ有効です。詳細については、フィルターテンプレート を参照してください。 -
WithIDs(std::vector<int64_t>&& id_array)整数の主キーのセットを設定します。これは
WithFilter()が空の場合にのみ有効です。
戻り値:
DeleteResponse を含む Status
成功したことを確認するには、status.IsOk() をチェックしてください。
DmlResults
このクラスは、データ変更操作(挿入、アップサート、削除)の結果を保持します。InsertResponse、UpsertResponse、または DeleteResponse の Results() を介してアクセスします。
const DmlResults& results = response.Results();
メソッド:
-
const IDArray& IdArray() const挿入、アップサート、または削除されたエンティティの ID です。自動 ID コレクションの場合、サーバーが挿入後にこの値を設定します。整数または文字列の ID の読み取り方法については、IDArray を参照してください。
-
uint64_t Timestamp() constサーバー側の操作タイムスタンプです。後続の検索またはクエリ呼び出しで
guarantee_timestampとして渡すことで、read-your-writes 整合性を確保できます。 -
uint64_t InsertCount() const挿入された行数です。
InsertResponseおよびUpsertResponseで設定されます。 -
uint64_t DeleteCount() const削除された行数です。
DeleteResponseおよびUpsertResponseで設定されます。 -
uint64_t UpsertCount() constアップサートされた行数(新規挿入または既存の置換)です。
UpsertResponseで設定されます。 -
int64_t Cost() const操作のコストをミリ秒単位で返します。
例外:
-
StatusCode
エラーの詳細については、
status.Code()およびstatus.Message()を確認してください。
例
#include "milvus/MilvusClientV2.h"
auto client = milvus::MilvusClientV2::Create();
milvus::ConnectParam connect_param{"YOUR_CLUSTER_ENDPOINT", "YOUR_CLUSTER_TOKEN"};
auto status = client->Connect(connect_param);
if (!status.IsOk()) {
std::cout << status.Message() << std::endl;
}
milvus::DeleteResponse resp_delete;
status = client->Delete(milvus::DeleteRequest()
.WithCollectionName(collection_name)
.WithPartitionName(partition_name)
.WithFilter(field_id + "== 5"),
resp_delete);
if (!status.IsOk()) {
std::cout << status.Message() << std::endl;
}