在Cosmos DB中选择子项,父项包含在结果中

时间:2017-05-22 07:02:44

标签: azure azure-cosmosdb

我有一个产品类,它与变种一起存储在Cosmos DB中。

[DataContract]
public class Product
{
    [DataMember]
    public virtual string Name { get; set; }


    [DataMember]
    public virtual IList<Variant> Variants { get; set; }
}


[DataContract]
public class Variant
{
    [DataMember]
    public virtual string Name { get; set; }
}

我想查询包含产品的变体的投影。

[DataContract]
public class VariantProjection
{
    [DataMember]
    public virtual Product Product { get; set; }

    [DataMember]
    public virtual string Name { get; set; }
}

我使用的是DocumentDB Linq api,但如果使用此api无法实现,则任何其他API都可以。

1 个答案:

答案 0 :(得分:1)

听起来您正在寻找JOINs and Projections(可能想要尝试Cosmos DB Query Playground,它有两种情况。)

让一个简单的数据集进行测试会很棒,但我相信这样的事情可能有所帮助:

SELECT p as product, variant.name  
FROM p
JOIN variant IN p.variants

请注意,您要检索每个变体的整个产品。这就是您在C#代码中想要实现的目标。