DocumentDB:是否可以删除自动生成的标签、_Etag、_ts 等?

DocumentDB: Is it possible to remove auto generated tags, _Etag, _ts etc?

我正在使用 .NET SDK 从 api-app 查询我的 docDb,在选择时我得到了这些我不想得到的标签。 基本上我想知道是否可以删除自动生成的标签 _Etag、_ts、_rid、_attachments 等?

这背后的原因是我想将 Select 查询的 JSON 输出转换为 XML,_tags 是不允许的吗?如果有人有不同的方法,请告诉我!

已更新

使用 SELECT * FROM... 时无法自动抑制这些。以下是有关如何处理此问题的一些选项:

  1. 指定您想要在查询中返回的字段
  2. obj.Remove("_rid"); for .NET、delete obj._rid for Node.js 或将 key/value 对复制到新的动态对象中时,将其删除以“_”开头的键。
  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 前缀。