メインコンテンツまでスキップ

Delete()

この操作は、フィルター式または ID 配列によってエンティティを削除します。

c++
Status Delete(const DeleteRequest& request, DeleteResponse& response)

リクエスト構文​

c++
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() を介してアクセスします。

c++
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() を確認してください。

例​

c++
#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;
}
このページは役に立ちましたか?