sql >> Base de Datos >  >> NoSQL >> MongoDB

actualización de mongo db cambiando el orden de los campos de objeto

Puede usar la proyección de MongoDB también. (modo recomendado)

A continuación se muestra el ejemplo:

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
});

Le da el resultado que esperaba, es decir,

{
   "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
}, ...

Otra forma es que una vez que ingrese los documentos en Node.js, puede reordenar los campos en JSON.

Ejemplo:

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 el orden de las teclas que desee en una matriz y suminístrelo a la función. Luego analice el resultado de nuevo a JSON.

Razón por la que sucede:

MongoDB asigna espacio para un nuevo documento en función de un determinado factor de relleno. Si su actualización aumenta el tamaño del documento más allá del tamaño asignado originalmente, el documento se moverá al final de la colección. El mismo concepto se aplica a los campos de un documento.

Si está realmente interesado y quiere profundizar en él, aquí está el enlace para obtener más información