2014-12-30 20 views
6

Chcę utworzyć dokument w błękitnym dokumencie id z kolumną automatycznego przyrostu.Jak utworzyć kolumnę z automatyczną inkrementacją w Documentdb

Czy to możliwe? Jeśli tak, proszę mnie poprowadzić.

Każda pomoc zostanie bardzo doceniona.

Database db = CreateOrReadDocumentDb("EmployeeDb").Result; 
DocumentCollection dc = CreateOrReadDocumentCollection(db.SelfLink, "EmployeeDetails").Result; 
Employee emp = new Employee(); 
emp.Name="ABC"; 
emp.id="";//automatically generate a unique string 
emp.sal=10000; 
emp.exp =5; 
emp.index=0; // I want an auto increment column for emp with name index and want to store in azure document db 
client.CreateDocumentAsync(collectionLink, data); 
+0

niezupełnie, będę edytować moje pytanie :) –

+0

możliwy duplikat [Czy mamy kolumnę tożsamości w DocumentDB] (http://stackoverflow.com/questions/26701587/do-we-have-identity-column-in -documentdb) –

+0

dzięki Abdel Raoof :) –

Odpowiedz

6

DocumentDB nie zawiera funkcji automatycznego inkrementacji po wyjęciu z pudełka.

Jak Gaurav wspomniał w Do we have Identity Column in DocumentDB, pole id jest specjalne, ponieważ jeśli aplikacja nie dostarczy wartości - DocumentDB automatycznie przypisze identyfikator GUID.

Jeśli potrzebujesz funkcji automatycznej inkrementacji, jednym z potencjalnych rozwiązań byłoby zapisanie licznika jako dokumentu i wykorzystanie DocumentDB's triggers do zapełnienia pola i zaktualizowania licznika.

+1

Rozwiązanie z wyzwalaczami i dokumentem licznika działałoby tylko w granicach pojedynczego zbioru. Jeśli chcesz później skalować i partycjonować dane w wielu kolekcjach, stanie się to trudne. Po prostu coś, o czym warto pomyśleć przed rozważeniem tego rozwiązania. Oczywiście w ramach jednej kolekcji rozwiązanie aliuy jest w porządku. –

+0

Wygląda na to, że wewnątrz wyzwalacza nie ma dostępu do obiektu kolekcji, więc to niestety nie działa. – dwhieb

+0

Możesz uzyskać dostęp do obiektu kolekcji wewnątrz wyzwalacza za pomocą 'getContext(). GetCollection()'. Oto przykład: https://github.com/Azure/azure-documentdb-js-server/blob/master/samples/triggers/UpdateMetadata.js –