条件に一致するすべてのドキュメントからフィールドのみを削除します

いつも晴れ

Elasticsearchインデックスからドキュメント全体を削除せずに、すべてのドキュメントから値を持つフィールドを削除するには、通常、_update_by_queryAPI呼び出しを使用します。script

例の場合:my_properties指数私はそれが存在するすべての文書からすべてのフィールド例えば(キー=>値)を削除したいです。以下のクエリを使用して、存在するすべてのフィードフィールドを削除できますが、この場合、フィードフィールドはテキスト/文字列タイプです

インデックス:my_properties

フィールド:フィード

タイプ:テキスト

フィードの値の例: feed: ["AB-1234"]

POST my_properties/_update_by_query?refresh&conflicts=proceed
{
    "script" : "ctx._source.remove('feed')",
    "query" : {
        "exists": { "field": "feed" }
    }
}

私の主な問題は、フィールドタイプがテキスト/文字列なくネストされている場合です

インデックス:my_properties

フィールド:feed_v2

タイプ:ネスト

feed_v2の値の例: feed_v2: [{"feed":12},{"id":["AB-9999"]}]

アプローチ1:

POST my_properties/_update_by_query?refresh&conflicts=proceed
{
    "script" : "ctx._source.remove('feed_v2')",
    "query" : {
        "exists": { "field": "feed_v2" }
    }
}

アプローチ2:

POST my_properties/_update_by_query?refresh&conflicts=proceed
{
    "script" : "ctx._source.feed_v2.remove('feed')",
    "query" : {
        "exists": { "field": "feed_v2.feed" }
    }
}

何も機能しません、何かが足りませんか?わかりませんが、私の推測は-

"query" : {"exists": { "field": "feed_v2" }}

クエリが存在して動作しませんネストされたタイプフィールドと同じように上の削除をしようとしたときに、それが何かを見つけることができなかった理由ですnestedタイプフィールド

参照によると:https//stackoverflow.com/a/53771354/1138192それは私のために働くはずですが、残念ながらそれは私のために働きません。

Opster ESNinja-カマル

Elasticsearchにはネストされたデータ型の概念があり、そのためにはネストされたクエリのみが役立ちます。基本的に、existsクエリは次の形式になります。

フィールドが存在するかどうかを確認するためのネストされたクエリ:

POST <your_index_name>/_search
{
  "query": {
    "nested": {
      "path": "feed_v2",
      "query": {
        "exists": {
          "field": "feed_v2.feed"
        }
      }
    }
  }
} 

以下のスクリプトを思いついたネストされたドキュメントからネストされたフィールドを削除するのに役立つクエリを探しています。

どのようにネストされた文書の通常の文書と異なる場合、これに応じてリンク、されるネストされた各オブジェクトは、隠された別の文書として索引付けされるので、あなたが利用しているというクエリは、動作しません。

ネストされたドキュメントのクエリスクリプトで更新して、フィールドを削除します

これは、あなただけ削除したいシナリオのためであるfeed、すなわちfield_v2.feedいますが、残りの保存したいfield_v2フィールドを。

POST resumes/_update_by_query
{
  "query": {
    "match_all": {}
  },
  "script": {
    "lang": "painless",
    "inline": """
      for(int i=0; i<ctx._source.field_v2.size(); i++)
      {
        HashMap myKV = ctx._source.field_v2.get(i);
        if(myKV.get(params.key_ref)!=null){
          myKV.remove(params.key_ref);
        }
      }
    """,
    "params": {
      "key_ref": "feed"
  }}
}

お役に立てれば!

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Javaを使用して特定のフィルターに一致するMongoDBドキュメントからのみ取得する方法

分類Dev

Springデータを使用してMongoのドキュメントの配列フィールドから一致した結果のみを取得する方法

分類Dev

フィールドの1つが何らかの条件に一致する場合にのみ、Mongooseでドキュメントを削除するにはどうすればよいですか?

分類Dev

埋め込みリスト内に一致するフィールドがあるすべてのドキュメントを検索する方法

分類Dev

mongodbの条件に一致するドキュメントとそのすべてのサブドキュメントをクエリします(springを使用)

分類Dev

mongodbの条件に一致するドキュメントとそのすべてのサブドキュメントをクエリします

分類Dev

Group byは、pymongoを使用してmongodbで最初に一致するドキュメントのみを返します。一致するすべてのドキュメントを取得するにはどうすればよいですか?

分類Dev

Mongo集計:配列フィールドの一致条件に基づいてドキュメントをカウントします

分類Dev

mongodbの特定のフィールドで値が一致するドキュメントを取得します

分類Dev

配列内のすべての要素が条件に一致する場合、Mongoはドキュメントを削除します

分類Dev

MongoDB-エクスポート-特定のフィールドに一致するすべてのドキュメントをエクスポートします-ファイルにリストされています

分類Dev

MongoDB 4.4.4変更ストリームは、フィルター処理された条件が一致するものではなく、すべてのドキュメント更新を返しますか?

分類Dev

MongoDB 4.4.4変更ストリームは、フィルター処理された条件が一致するものではなく、すべてのドキュメント更新を返しますか?

分類Dev

mgo、mongodb:埋め込まれた構造体から1つのフィールドに一致するドキュメントを検索する

分類Dev

ElasticSearch:配列フィールド内のサブドキュメントの欠落しているフィールドに一致します

分類Dev

フィールドが一致しないすべてのドキュメントを取得するクエリを作成する方法

分類Dev

投影によってネストされたドキュメントから1つを除くすべてのフィールドを削除します

分類Dev

マングースのサブドキュメント配列をフィルタリングし、一致する要素のみを返します

分類Dev

MongoDB:日付範囲の条件が一致するドキュメントを除くすべてのドキュメントを検索します

分類Dev

ベスパのクエリに一致するすべてのドキュメントを取得します

分類Dev

配列フィールドの最後の要素とMongooseの特定のクエリ値に一致するすべてのドキュメントをどのように見つけることができますか?

分類Dev

フィールド配列に一致するドキュメントを返します

分類Dev

MongoDBのオブジェクト配列内の複数のフィールドに一致するドキュメントを検索します

分類Dev

Firestoreデータをクエリし、クエリに一致するすべてのドキュメントに1つのフィールドを追加します

分類Dev

マングースFindOne-条件に一致するフィールドのみを返します

分類Dev

すべてのフィールド名をFirestoreドキュメントからarraylistに取得する

分類Dev

Kibanaは、一致するすべてのドキュメントをテーブルに表示できますか?

分類Dev

コレクションからすべてのドキュメントを返すときに特定のフィールドのみを含める方法

分類Dev

Firestore "updateData"は、ドキュメント内のすべてのフィールドを削除します

Related 関連記事

  1. 1

    Javaを使用して特定のフィルターに一致するMongoDBドキュメントからのみ取得する方法

  2. 2

    Springデータを使用してMongoのドキュメントの配列フィールドから一致した結果のみを取得する方法

  3. 3

    フィールドの1つが何らかの条件に一致する場合にのみ、Mongooseでドキュメントを削除するにはどうすればよいですか?

  4. 4

    埋め込みリスト内に一致するフィールドがあるすべてのドキュメントを検索する方法

  5. 5

    mongodbの条件に一致するドキュメントとそのすべてのサブドキュメントをクエリします(springを使用)

  6. 6

    mongodbの条件に一致するドキュメントとそのすべてのサブドキュメントをクエリします

  7. 7

    Group byは、pymongoを使用してmongodbで最初に一致するドキュメントのみを返します。一致するすべてのドキュメントを取得するにはどうすればよいですか?

  8. 8

    Mongo集計:配列フィールドの一致条件に基づいてドキュメントをカウントします

  9. 9

    mongodbの特定のフィールドで値が一致するドキュメントを取得します

  10. 10

    配列内のすべての要素が条件に一致する場合、Mongoはドキュメントを削除します

  11. 11

    MongoDB-エクスポート-特定のフィールドに一致するすべてのドキュメントをエクスポートします-ファイルにリストされています

  12. 12

    MongoDB 4.4.4変更ストリームは、フィルター処理された条件が一致するものではなく、すべてのドキュメント更新を返しますか?

  13. 13

    MongoDB 4.4.4変更ストリームは、フィルター処理された条件が一致するものではなく、すべてのドキュメント更新を返しますか?

  14. 14

    mgo、mongodb:埋め込まれた構造体から1つのフィールドに一致するドキュメントを検索する

  15. 15

    ElasticSearch:配列フィールド内のサブドキュメントの欠落しているフィールドに一致します

  16. 16

    フィールドが一致しないすべてのドキュメントを取得するクエリを作成する方法

  17. 17

    投影によってネストされたドキュメントから1つを除くすべてのフィールドを削除します

  18. 18

    マングースのサブドキュメント配列をフィルタリングし、一致する要素のみを返します

  19. 19

    MongoDB:日付範囲の条件が一致するドキュメントを除くすべてのドキュメントを検索します

  20. 20

    ベスパのクエリに一致するすべてのドキュメントを取得します

  21. 21

    配列フィールドの最後の要素とMongooseの特定のクエリ値に一致するすべてのドキュメントをどのように見つけることができますか?

  22. 22

    フィールド配列に一致するドキュメントを返します

  23. 23

    MongoDBのオブジェクト配列内の複数のフィールドに一致するドキュメントを検索します

  24. 24

    Firestoreデータをクエリし、クエリに一致するすべてのドキュメントに1つのフィールドを追加します

  25. 25

    マングースFindOne-条件に一致するフィールドのみを返します

  26. 26

    すべてのフィールド名をFirestoreドキュメントからarraylistに取得する

  27. 27

    Kibanaは、一致するすべてのドキュメントをテーブルに表示できますか?

  28. 28

    コレクションからすべてのドキュメントを返すときに特定のフィールドのみを含める方法

  29. 29

    Firestore "updateData"は、ドキュメント内のすべてのフィールドを削除します

ホットタグ

アーカイブ