MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

mongo db update ändert die Reihenfolge der Objektfelder

Sie können die MongoDB-Projektion verwenden auch. (empfohlener Weg)

Unten ist das Beispiel:

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

Gibt Ihnen die erwartete Ausgabe, dh

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

Eine andere Möglichkeit besteht darin, die Felder in JSON neu anzuordnen, sobald Sie die Dokumente in Node.js erhalten haben.

Beispiel:

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

Setzen Sie die gewünschte Tastenreihenfolge in ein Array und geben Sie sie an die Funktion an. Analysieren Sie das Ergebnis dann zurück in JSON.

Grund, warum es passiert:

MongoDB weist Speicherplatz für ein neues Dokument basierend auf einem bestimmten Füllfaktor zu. Wenn Ihre Aktualisierung die Größe des Dokuments über die ursprünglich zugewiesene Größe hinaus erhöht, wird das Dokument an das Ende der Sammlung verschoben. Dasselbe Konzept gilt für Felder in einem Dokument.

Wenn Sie wirklich interessiert sind und sich darin vertiefen möchten, finden Sie hier den Link für mehr Informationen