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

atualização do mongo db alterando a ordem dos campos do objeto


Você pode usar a projeção MongoDB também. (maneira recomendada)

Abaixo está o exemplo:
db.collection.find({},{
   "Airport":1,
   "Day":1,
   "Humidity":1,
   "Sea Level Pressure":1,
   "State":1,
   "Station Pressure":1,
   "Temperature":1,
   "Time":1,
   "Wind Direction":1,
   "Wind Speed":1,
   "_id":1,
   "month_high":1
});

Dá-lhe a saída como você esperava, ou seja,
{
   "Airport":"ORL",
   "Day":8,
   "Humidity":55,
   "Sea Level Pressure":196,
   "State":"Florida",
   "Station Pressure":29.97,
   "Temperature":82,
   "Time":1553,
   "Wind Direction":170,
   "Wind Speed":5,
   "_id":ObjectId("5340eff554f98e32c5990b4f"),
   "month_high":true
}, ...


Outra maneira é, depois de colocar os documentos no Node.js, você pode reordenar os campos em JSON.

Exemplo:
var json = {"name": "David", "age" : 78, "NoOfVisits" : 4   };
console.log(json);
//outputs - Object {name: "David", age: 78, NoOfVisits: 4}
//change order to NoOfVisits,age,name

var k = JSON.parse(JSON.stringify( json, ["NoOfVisits","age","name"] , 4));
console.log(k);
//outputs - Object {NoOfVisits: 4, age: 78, name: "David"} 

Coloque a ordem de chave desejada em uma matriz e forneça à função. Em seguida, analise o resultado de volta para JSON.

Motivo pelo qual isso acontece:
O MongoDB aloca espaço para um novo documento com base em um determinado fator de preenchimento. Se sua atualização aumentar o tamanho do documento além do tamanho originalmente alocado, o documento será movido para o final da coleção. O mesmo conceito se aplica aos campos em um documento.

Se você estiver realmente interessado e quiser se aprofundar, aqui está o link para mais informações