选择 * 使用 SQL API 排除 Cosmos DB 中的特定属性

Jep*_*sen 7 sql nosql azure-cosmosdb

考虑以下情况,我有一个看起来像这样的文档:

"id": 2
"properties": {
    "desired": {
        "Property1": 10,
        "Property2": 1,
        "Property3": 1,
        "$metadata": { 
        ...
        },
        "$version": 53
    }
},
Run Code Online (Sandbox Code Playgroud)

我想从文档中获取所有内容,$metadata除了并且$version明显的解决方案是:

SELECT c["Property1"], c["Property2"] .... FROM c where c["id"] = "2"
Run Code Online (Sandbox Code Playgroud)

但是,我的文档可能会动态扩展,因此上述内容不是最佳的。因此,我认为最好排除$metadata$version。我在 stackoverflow 上查看了不同的“有趣”解决方案,其中一个建议创建一个临时表。

不幸的是,查询需要非常高效,因为我想减少使用的 RU 量。另外,我真的想避免在代码中处理排除。

因此,如何从文档中排除特定的“列”,而不编写过长的查询(可能包括创建临时表)。

Mar*_*own 2

Cosmos DB 不支持“Project Away”。您将需要指定要投影的属性或使用 * 并返回所有属性。