2014-12-30 10 views
6

Ich möchte ein Dokument in azure Dokumentdb mit einer Auto-Inkrement-Spalte erstellen.So erstellen Sie eine automatisch inkrementierte Spalte in Documentdb

Ist das möglich? Wenn ja, bitte führe mich.

Jede Hilfe würde sehr geschätzt werden.

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

nicht genau, ich werde meine Frage bearbeiten :) –

+0

mögliche Duplikate von [Haben wir Identity-Spalte in DocumentDB] (http://stackoverflow.com/questions/26701587/do-we-have-identity-column-in -documentdb) –

+0

danke Abdel Raoof :) –

Antwort

6

DocumentDB enthält nicht automatisch Auto-Inkrement-Funktionalität aus der Box.

Wie Gaurav in Do we have Identity Column in DocumentDB erwähnt, das id Feld ist speziell darin, wenn ein Wert nicht von der Anwendung zur Verfügung gestellt wird - DocumentDB wird eine GUID automatisch zuweisen.

Wenn Sie die Autoinkrement-Funktion benötigen, wäre eine mögliche Lösung, einen Counter als Dokument zu speichern und zu nutzen, um Ihr Feld zu füllen und den Counter zu aktualisieren.

+1

Eine Lösung mit Triggern und einem Zählerdokument würde nur innerhalb der Grenzen einer einzelnen Sammlung funktionieren. Wenn Sie später die Daten horizontal skalieren und die Daten auf mehrere Sammlungen verteilen möchten, wird dies schwierig. Nur etwas, über das man nachdenken sollte, bevor man diese Lösung in Betracht zieht. Natürlich ist Aliuys Lösung innerhalb einer einzigen Sammlung in Ordnung. –

+0

Es scheint, dass es keinen Zugriff auf das Sammlungsobjekt innerhalb eines Triggers gibt. Dies funktioniert leider nicht. – dwhieb

+0

Sie können auf das Sammlungsobjekt innerhalb eines Triggers über 'getContext(). GetCollection()' zugreifen. Hier ein Beispiel: https://github.com/Azure/azure-documentdb-js-server/blob/master/samples/triggers/UpdateMetadata.js –

Verwandte Themen