[P2] Add Bulk Write Operations (upsert, update, delete)
- Vorherrschende Sprache
- C#
- Sterne
- 3
- Forks
- 7
- Ø Merge
- 1 T. 12 Std.
- Gemergte PRs (30 T.)
- 14
Beschreibung
## Feature Request
**Priority:** P2 (Medium)
### Description
CosmosDB Shell supports array input for `mkitem` (batch create) but lacks bulk upsert, update, and delete operations. Bulk operations are critical for data migration and maintenance tasks.
### Comparable Features in Other Shells
- **mongosh**: `bulkWrite()`, ordered/unordered bulk operations
- **sqlcmd**: Bulk insert via `bcp`
### Proposed Behavior
Add a `bulk` command or extend existing commands:
- `bulk upsert ` — Bulk upsert from JSON array or file
- `bulk delete ` — Bulk delete matching documents
- `bulk patch ` — Bulk patch operations
- Support concurrency control (max parallelism)
- Report progress, success/failure counts, and total RU cost
### Example Usage
```
bulk upsert ./updates.json --max-parallelism 10
bulk delete "SELECT c.id, c.pk FROM c WHERE c.expired = true"
bulk patch ./patches.json
```
Beitragsleitfaden
Rechercherichtung
Beginne damit, den vorhandenen mkitem array-input-Befehl und die Command-Einstiegspunkte der Shell zu untersuchen, um zu verstehen, wie Batch-Operationen derzeit verarbeitet werden. Definiere die unterstützten Bulk-Befehle, Eingabeformen, das Nebenläufigkeitsverhalten sowie die Fortschritts- und Kostenberichterstattung, und füge anschließend Tests für das vereinbarte Verhalten hinzu; abgeschlossen ist die Aufgabe, wenn der Umfang und die Abschlusskriterien für upsert, delete und patch bestätigt sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- csharp
- Bereich
- cli, database
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Ruhig
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 45/100