2

.NET SDK を使用して api-app から docDb をクエリしています。選択すると、取得したくないタグを取得します。基本的に、自動生成されたタグ_Etag、_ts、_rid、_attachmentsなどを削除できるかどうか疑問に思っていますか?

この背後にある理由は、選択クエリからの JSON 出力を XML に変換したいからです。_tags は許可されていませんか? 誰かが別のアプローチを持っている場合は、私に知らせてください!

4

1 に答える 1

5

更新しました

使用時にこれらを自動的に抑制する方法はありませんSELECT * FROM...。これに対処する方法のいくつかのオプションを次に示します。

  1. クエリに戻したいフィールドを指定します
  2. obj.Remove("_rid");.NETdelete obj._rid用、Node.js 用、または「_」で始まるキーをスキップして新しい動的オブジェクトにキーと値のペアをコピーすることによってデータを受信したら、それらを削除します。
  3. #2 サーバー側を行うストアド プロシージャ (sproc) を作成する
  4. 更新ユーザー定義関数 (UDF) を使用します。以下を参照してください。

私は今、UDF を使用することがこれを行うための最良の方法であると信じています。

function stripUnderscoreFields (o) { 
  output = {};

  for (key in o) {
    value = o[key];
    if (key.indexOf('_') !== 0) {
      output[key] = value;
    }
  }
  return output 
}

次に、次のようなクエリで UDF を使用します。

SELECT VALUE udf.stripUnderscoreFields(c) FROM collection c

上記の例のキーワードVALUEを省略すると、各ドキュメントの前に追加される $1 プレフィックスが抑制されることに注意してください。

于 2016-02-24T23:56:36.013 に答える