MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Empurre o elemento em qualquer posição da matriz no subdocumento


É uma proposição justa em sua pergunta, no entanto, você basicamente tem o conceito errado.

A primeira delas é que você perdeu o conceito de que arrays em geral têm suas entradas começando em um índice de 0 para o primeiro elemento, então seu "posicionamento" está fora de uma unidade neste caso e deveria ter sido:
db.collection.update(
   { _id: tsId },
   {$push: { 'subdoc.array': { "$each":["3", "4"], "$position": 3 } }}
)

E como agora você está inserindo na posição correta, seus elementos estão no lugar correto.