Azure / Azure/CosmosDBShell

[P2] Add Bulk Write Operations (upsert, update, delete)

Offen
#107 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
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

Beitragsleitfaden öffnen

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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.