DocumentDB是真正的架构,意味着它不会强制您只拥有某种文档,而且它是用户的选择。
考虑到分区集合中的上述要点(假设部门为Employee文档中的partitionedKey),用户决定不传递任何partitionKey(只是一个用例来支持我的观点,一个新员工/实习生加入但尚未决定他将在哪个部门工作,之后他们可能会在适当的部门更新文件)
基于上述情况,我的问题是,在过渡期间,新员工将去/持哪个分区,因为我没有为他设一个部门(partitionKey)?
{
"eid": "",
"entryType": "",
"address":
{
"PIN": "",
"city": "",
"street": ""
},
"name": "",
"id": "",
"age":
}
答案 0 :(得分:2)
好问题!当我们开始使用分区集合时,我们有相同的查询。
根据我的理解,当然可以在分区集合中创建文档而不指定分区键属性(在您的情况下为departmentId),但不建议这样做。
当发生此类事件时,Cosmos DB会将此类文档放入可通过在查询中指定{}
即empty JavaScript object
作为分区键来访问的特殊分区。
但是,请记住,您无法更新分区键属性值(在您的示例中为员工分配了一个部门)。您必须使用正确的分区键删除并重新创建文档。
答案 1 :(得分:0)
如果您正在使用分区集合,则需要在每次插入时为partitionKey提供值。选择使用partitionKey的方法取决于应用程序的需求和数据的性质。没有一个尺寸适合所有答案。从你可能想要重新考虑使用部门作为partitionKey的事情的声音。