Azure DocumentDb

Vantagens

  • Armazenamento de documentos JSON sem schema
  • Queries parecidas com T-SQL
  • Execução de JavaScript no servidor
  • Níveis de consistência configuráveis
  • Performance

Queries parecidas com T-SQL

{
"id": "WakefieldFamily",
"parents": [
{ "familyName": "Wakefield", "givenName": "Robin" },
{ "familyName": "Miller", "givenName": "Ben" }
],
"children": [{
"familyName": "Merriam",
"givenName": "Jesse",
"gender": "female",
"grade": 1,
"pets": [
{ "givenName": "Goofy" },
{ "givenName": "Shadow" }
]
},{
"familyName": "Miller",
"givenName": "Lisa",
"gender": "female",
"grade": 8
}
],
"address": { "state": "NY", "county": "Manhattan", "city": "NY" }
}
var family = client.CreateDocumentQuery<Family>("families")  
.First(f => f.Id == "AndersenFamily");
var sql = @"  
SELECT *
FROM families f
WHERE f.id = ""AndersenFamily""
";
var family = client.CreateDocumentQuery<Family>("families", sql).First();

Execução de JavaScript no servidor

  • Stored Procedure
  • Trigger
  • UDF (user defined functions)
var udf = new UserDefinedFunction  
{
Body = @"
//isso é javascript e vai ser rodado no Azure DocumentDb
function calculeImposto(salario){
if(salario < 1000){
return salario * 0.1;
}
if(salario < 3000){
return salario * 0.2;
}
return salario * 0.3;
}
"
};
await client.CreateUserDefinedFunctionAsync(_collection.SelfLink, udf);


var sql = @"
SELECT *
FROM Funcionarios f
WHERE calculeImposto(f.salario) > 10
";
var f = client.CreateDocumentQuery<Funcionario>("Funcionarios", sql).ToList();

Níveis de consistência configuráveis

Strong

Bounded Staleness

Session

Eventual

--

--

--

Luís Rudge é pai e desenvolvedor há anos. Trabalha na Round Pegs Inc & seu projeto pessoal http://www.uniclearning.com.br/ — hospedado inteiramente no Azure

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Luis Rudge

Luis Rudge

Luís Rudge é pai e desenvolvedor há anos. Trabalha na Round Pegs Inc & seu projeto pessoal http://www.uniclearning.com.br/ — hospedado inteiramente no Azure

More from Medium

A Closer Look for Azure Functions, Azure Service Bus and Azure Event Hub — Considerations on…

Enable Application Gateway Ingress Controller (AGIC) in Azure Kubernetes Service (AKS) and expose…

Azure Communication Services- Tracking User Presence/Status for Calls

Configure Azure Multi-Factor Authentication in Azure