Behalten in MongoDB gespeicherte Arrays ihre Reihenfolge bei?


71

Einfache Frage: Behalten Arrays ihre Reihenfolge bei, wenn sie in MongoDB gespeichert werden?

Antworten:


74

yep MongoDB behält die Reihenfolge des Arrays bei .. genau wie Javascript-Engines ..


Genau wie jede einzelne Sprache, an die ich denken kann;). Was nicht direkt damit zusammenhängt, wie eine Datenbank Daten speichern würde.
— Remon van Vliet

:) - Eigentlich ist es nicht so, wie Mongodb die Daten speichert - es ist so, wie es analysiert wird. Mongodb verwendet die Javacript-Engine, daher kann man davon ausgehen, dass sie denselben Datentyp haben
— dmb

9
Nein, deshalb ist es nicht so wie es ist. JavaScript wird in keinem Teil der MongoDB-Speicher-Engine verwendet. Arrays bleiben genau deshalb geordnet, weil sie von MongoDB so gespeichert werden. Die Array-Reihenfolge ist Teil der Abfragespezifikation, und Treiber, JavaScript oder andere, folgen dieser Spezifikation und präsentieren die Daten so, wie sie in der Datenbank vorhanden sind.
— Remon van Vliet

13
Auch hier verwendet die Speicher-Engine kein JavaScript. Offensichtlich gibt es in MongoDB eine JS-Engine für m / r, serverseitige Skriptausführung und andere Funktionen, die auf JavaScript basieren. Die Tatsache, dass MongoDB Arrays geordnet hält, ist auf die BSON / JSON-Spezifikation zurückzuführen, nicht darauf, dass eine JS-Engine in einem völlig unabhängigen Teil der Datenbank verwendet wird.
— Remon van Vliet

@RemonvanVliet Werden Sie einen Link zu Code oder Dokumentation bereitstellen, der bestätigt, dass die Arrays in Ordnung sind?
— Adam Monsen


2

Mir ist klar, dass dies eine alte Frage ist, aber die Mongo-Dokumente geben jetzt an, dass alle Dokumenteigenschaften beim Einfügen ihre Reihenfolge beibehalten . Dies gilt natürlich auch für Arrays.

Dokumentfeldreihenfolge

MongoDB behält die Reihenfolge der Dokumentfelder nach Schreibvorgängen bei, mit Ausnahme der folgenden Fälle:

  • Das Feld _id ist immer das erste Feld im Dokument.
  • Aktualisierungen, die das Umbenennen von Feldnamen umfassen, können zur Neuordnung von Feldern im Dokument führen.

In Version 2.6 geändert : Ab Version 2.6 versucht MongoDB aktiv, die Feldreihenfolge in einem Dokument beizubehalten. Vor Version 2.6 hat MongoDB die Reihenfolge der Felder in einem Dokument nicht aktiv beibehalten.


5
Als alte Frage lesen Sie sie bitte besser, sie sagt nichts über die Reihenfolge der Dokumentfelder aus. Ein Objekt ist kein Array in Javascript und Arrays haben (normalerweise) keine Felder.
— Francisco Presencia

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.