MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

mise à jour de mongo db modifiant l'ordre des champs d'objet

Vous pouvez utiliser projection MongoDB aussi. (méthode recommandée)

Ci-dessous l'exemple :

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

Vous donne la sortie comme vous l'attendiez, c'est-à-dire

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

Une autre méthode consiste à réorganiser les champs en JSON une fois que vous avez importé les documents dans Node.js.

Exemple :

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"} 

Mettez l'ordre des clés que vous voulez dans un tableau et fournissez-le à la fonction. Ensuite, analysez le résultat en JSON.

Raison pour laquelle cela se produit :

MongoDB alloue de l'espace pour un nouveau document en fonction d'un certain facteur de remplissage. Si votre mise à jour augmente la taille du document au-delà de la taille initialement allouée, le document sera déplacé à la fin de la collection. Le même concept s'applique aux champs d'un document.

Si vous êtes vraiment intéressé et que vous voulez creuser, voici le lien pour en savoir plus informations