$position (Definir Posição de Inserção)
Última atualização: 2026-10-09
$position (Definir Posição de Inserção)
$position define onde $push insere elementos. `{ $push: { items: { $each: ['x'], $position: 0 } } }` insere no início. Posições começam em 0; valores negativos contam a partir do fim (-1 insere antes do último elemento). Ele deve ser usado dentro de $push com $each e compõe com $slice para limitar o tamanho do array.
| Categoria | Modificador de Atualização |
|---|---|
| Versão do MongoDB | 2.6+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $push: { <campo de array>: { $each: [ <valor> ], $position: <posição> } } }
⚙️ Parâmetros
| campo de array | O campo de matriz no qual inserir. |
|---|---|
| posição | O índice de inserção, começando em 0; negativos contam a partir do fim. |
Retorno:O resultado da atualização
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $position: insere no início do array
// Posições começam em 0
db.tasks.updateOne(
{ _id: 1 },
{ $push: { queue: { $each: ['urgent'], $position: 0 } } }
)
// Negativo: insere antes do último elemento
db.tasks.updateOne(
{ _id: 1 },
{ $push: { queue: { $each: ['normal'], $position: -1 } } }
)
Saída:
// urgent cai na frente; normal cai antes do último elemento
📌 Notas
- Exige $each junto
- Posições começam em 0; negativos contam a partir do fim
- Combine com $slice para limitar o tamanho do array
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
Q$position deve ser combinado com $each?
ASim, $position funciona apenas dentro de $push junto com $each.
QO que significa $position: 0?
AInserir no início do array (índice 0).
Q$position suporta negativos?
ASim, -1 insere antes do último elemento.