Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Posição com MongoDB dentro de um array

tenho 1 array com 2 posições e gostaria de saber a traves do mongoDb como troco a posição 1 com a 2 :

  "Cont": [
    {
      "1": {
        "id": "1",
        "tipo_id": "1",
        "ativo": "1",
        "nome": "Texto 1",
        "titulo": "Lorem",
        "conteudo": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut.",
        "largura": "100.00",
        "esconder": []
      }
    },
    {
      "2": {
        "id": "2",
        "tipo_id": "4",
        "ativo": "1",
        "nome": "Youtube",
        "titulo": "Youyube",
        "conteudo": "https://www.youtube.com/watch?v=doaj9XEcYmI",
        "largura": "100.00",
        "esconder": []
      }
    }
  ]

seria esses arrays quero que fique assim

  "Cont": [
    {
        "2": {
          "id": "2",
          "tipo_id": "4",
          "ativo": "1",
          "nome": "Youtube",
          "titulo": "Youyube",
          "conteudo": "https://www.youtube.com/watch?v=doaj9XEcYmI",
          "largura": "100.00",
          "esconder": []
        }
      },
      {
      "1": {
        "id": "1",
        "tipo_id": "1",
        "ativo": "1",
        "nome": "Texto 1",
        "titulo": "Lorem",
        "conteudo": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut.",
        "largura": "100.00",
        "esconder": []
      }
    }
  ]

sem ter que apagar e importar tudo realmente trocar a posição.

att .

3 respostas

Oi Lucas, você até tem o $reverseArray como operador de agregação, as até onde sei, ele não vai o update na sua collection, acho que vai precisar mesmo recuperar e fazer o update, a vantagem é que os dados já podem vir na ordem inversa: https://docs.mongodb.com/manual/reference/operator/aggregation/reverseArray/#exp._S_reverseArray

entendi mas vamos dizer que eu não saiba a posição tipo

[1 , 2 , 3]

certo vamos dizer que você utiliza o software mas que que apenas o 2 venha em primeiro logo não seria o reverse por que ficaria assim :

[2 , 1 , 3]

logo poderia mudar varias vezes mas numca em um padrão

solução!

Opa Lucas, neste caso, você poderia recuperar apenas os dois, fazer o reverse e inseri-los novamente e se não tem um padrão, então, é melhor fazer tudo programaticamente mesmo.