2016-06-03 5 views
1

Angenommen, ich habe eine Sammlung in MongoDB mit folgendem Schema:MongoDB bewegen Feldelement

{ 
    "_id": ObjectID, 
    "Entries": [ 
     { 
      "_id": ObjectID, 
      "Content": string 
     } 
    ] 
} 

Jetzt möchte ich den „Inhalt“ Feld eines Elements aus dem Array „Einträge“ bearbeiten und dann das Element bewegen zum ersten Index - Null -, damit das Array absteigend sortiert wird, wenn die Elemente zuletzt geändert wurden. Kann dies in einer 'atomaren' Abfrage erreicht werden, die ich in ein db.collection.update einfügen kann?

Wenn nicht, sollte ich einen UNIX-Zeitstempel sagen und dann nur bei der Abfrage sortieren? Ist der Leistungsunterschied bemerkbar?

Antwort

0

Wenn Sie innerhalb Ihres Arrays objectId verwenden, dann ist ein Teil dieser ID ein Zeitstempel.

Das bedeutet, dass Sie immer bestimmen können, wann das Feld erstellt wurde. Wenn Sie sich mit dem letzten Update befassen müssen - dann wird das Timestamp-Feld dieses Problem lösen, da ich persönlich nicht auf Array-Position weiterleiten werde.

Weitere Informationen zu objectID und python here