sql >> Database teknologi >  >> NoSQL >> MongoDB

mongo db opdatering ændrer rækkefølgen af ​​objektfelter

Du kan bruge MongoDB-projektion også. (anbefalet måde)

Nedenfor er eksemplet:

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

Giver dig output, som du forventede, dvs.

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

En anden måde er, når du først har fået dokumenterne ind i Node.js, kan du omarrangere felterne i JSON.

Eksempel:

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

Sæt den ønskede nøglerækkefølge i et array og tilfør funktionen. Parse derefter resultatet tilbage til JSON.

Årsag til, hvorfor det sker:

MongoDB tildeler plads til et nyt dokument baseret på en bestemt polstringsfaktor. Hvis din opdatering øger størrelsen af ​​dokumentet ud over den oprindeligt tildelte størrelse, flyttes dokumentet til slutningen af ​​samlingen. Det samme koncept gælder for felter i et dokument.

Hvis du virkelig er interesseret og vil grave i det her er linket for mere oplysninger



  1. mongoDB:$inc af et ikke-eksisterende dokument i et array

  2. Mongodb kan ikke køre kortreduktion uden js-motoren

  3. Hvordan MongoDB Database Automation forbedrer sikkerheden

  4. Mongoose/MongoDB resultatfelter vises udefinerede i Javascript