documentdb 在集合的所有分区中执行存储过程?

documentdb execute stored procedure in all partition of a collection?

是否可以对所有分区集合执行存储过程。如果不是,我如何在没有往返的情况下存档?

提前致谢。

不,存储过程在单个分区中执行,并且没有用于执行存储过程的自动扇出。调用时需要指定分区键

假设您的意思是 "achieve" 而不是 "archive",我的第一个建议是设计您的应用程序并选择您的 pk,以便您每次调用时都可用。如果失败,您唯一的其他选择是手动执行扇出。您可以并行执行此操作,因此延迟仅略高于命中单个分区,但它会消耗 n 倍的 RU,因此总体 RU 吞吐量限制可能会限制您。

自己进行扇出的困难在于您无法控制分区集合中分区的数量和范围。因此,您需要在执行扇出之前检索它们。我不知道其他的 SDK,但我没有看到 node.js SDK 直接支持它。但是,REST API 实现了一个端点来执行此操作,https://{your endpoint domain}.documents.azure.com/dbs/{your collection's uri fragment}/pkranges 因此您可能必须根据您的 SDK 直接调用它。这将告诉您集合中每个分区的当前 pks 范围。最小值包含在内,因此您可以使用它来进行存储过程调用。