É verdade, Ricardo. Eu olhei o slide 36.
No slide 38 o "shippingAddress" erradamente não está aparecendo. Esse modelo veio da primeira edição do livro "NoSQL Distilled", que parece estar meio "buggada".
Acabo de consultar o mesmo modelo na segunda edição do livro e vi que o problema do "shippingAddress" já foi consertado (o do "customerId" ainda não, infelizmente).
Eis o modelo com o "shippingAddress" e sem "customerId" (vou consertar nos slides também):
// in customers
{
"customer": {
"id": 1,
"name": "Martin",
"billingAddress": [{"city": "Chicago"}],
"orders": [
{
"id":99,
"orderItems":[
{
"productId":27,
"price": 32.45,
"productName": "NoSQL Distilled"
}
],
"shippingAddress":[{"city":"Chicago"}]
"orderPayment":[
{
"ccinfo":"1000-1000-1000-1000",
"txnId":"abelif879rft",
"billingAddress": {"city": "Chicago"}
}
]
}
]
}
}
Quanto à dúvida do "customers" e "orders" estarem ou não em arquivos separados: a aula 5 fala de sistemas de gerenciamento de bancos de dados NoSQL, então o que podemos dizer é que "customers" e "orders" são coleções de dados diferentes. Uma coleção é como uma tabela -- agrupa objetos semânticamente relacionados. Um banco de dados NoSQL pode ter várias coleções. A forma como as coleções são armazenados fisicamente em arquivos no disco é uma decisão do sistema NoSQL e depende das configurações usadas nele (por exemplo, em um BD com particionamento, uma mesma coleção estará armazenada em vários arquivos, em diferentes máquinas).
Kelly