[P2] Add Bulk Write Operations (upsert, update, delete)
- Langage dominant
- C#
- Étoiles
- 3
- Forks
- 7
- Merge moyen
- 1 j 9 h
- PR mergées (30 j)
- 18
Description
## 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
```
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par examiner la commande mkitem array-input existante et les points d’entrée des commandes du shell afin de comprendre comment les opérations par lots sont actuellement gérées. Définissez les commandes bulk prises en charge, les formes d’entrée, le comportement de concurrence ainsi que le suivi de la progression et des coûts, puis ajoutez une couverture pour le comportement convenu ; le travail est terminé lorsque le périmètre et les critères d’achèvement pour upsert, delete et patch sont confirmés.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- csharp
- Domaine
- cli, database
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- Calme
- Clarté
- À clarifier
- Accessibilité débutants
- 45/100