Azure / Azure/CosmosDBShell

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

Abierto
#107 3 comentarios 0 reacciones 0 asignados Ver en GitHub
enhancement
Lenguaje dominante
C#
Estrellas
3
Forks
7
Merge medio
1 d 12 h
PR fusionados (30 d)
14

Descripción

## 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
```

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Empieza inspeccionando el comando mkitem array-input existente y los puntos de entrada de comandos de la shell para entender cómo se gestionan actualmente las operaciones por lotes. Define los comandos bulk admitidos, los formatos de entrada, el comportamiento de concurrencia y los informes de progreso y costes; después, añade cobertura para el comportamiento acordado. Se considera terminado cuando se hayan confirmado el alcance y los criterios de finalización para upsert, delete y patch.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
csharp
Área
cli, database
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Tranquilo
Claridad
Necesita aclaración
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.