我确实在找到这个问题的答案时遇到了很多麻烦。
如果我在集合中创建一个新文档,我可以给它任何我想要的属性。
有没有办法在我的所有文件中添加新属性? Cosmos DB似乎抵制了我所尝试的一切。我是否必须删除现有文件并制作新文件?
如果可能的话,知道如何在C#代码中执行此操作会很高兴。不过,Javascript也很好。
答案 0 :(得分:0)
CosmosDB不支持部分文档更新,因此如果您确实需要新属性,则必须使用新属性更新所有现有文档。有很多方法可以做到这一点,包括存储过程。
如果您可以使用C#,那么您可以使用Cosmonaut
轻松完成var items = await cosmoStore.Query().ToListAsync();
foreach(var item in items){
item.YourProperty = "YourValue";
}
await cosmosStore.UpdateRangeAsync(items);
选择项目时,如果项目不存在,您的值将默认为默认属性值,并且通过更新它将被添加。
答案 1 :(得分:0)
SELECT
Name,
Team,
Score,
SUM(Score) OVER (PARTITION BY Team) AS TeamScore
FROM yourTable
ORDER BY
TeamScore DESC,
Score;