Gewusst wie: abrufen der letzten Aktualisierung der einzelnen Dokumente in MongoDB?
Ich würde gerne wissen, ob es einen Weg gibt, um die letzten update - /Zeit ändern der Daten (ich.e-Dokumente) in einer Sammlung in MongoDB. Mehr klar, ich will eine Abfrage zum abrufen aller Dokumente aktualisiert, nachdem eine bestimmte Zeit.
Gibt es Möglichkeiten zum abrufen dieser last modified-Zeitstempel in MongoDB?
Hinweis: Für neu erstellte Dokumente, die ich kenne, die können wir abrufen den Zeitstempel aus der objectId, aber für ein update die id gleich. Tut MongoDB speichern Sie die Letzte update-Zeit für jedes Dokument irgendwo?
Ich bin mit morphia als java-Treiber, so dass, wenn es jede mögliche Art und Weise von morphia, lassen Sie es mich bitte wissen.
InformationsquelleAutor der Frage Sadish Kumar | 2012-12-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die capture-Letzte Aktualisierung selbst.
Für meine Anwendung habe ich immer ein AuditTrail-Objekt, das erfasst AuditEvents. Diese Ereignisse auftreten, auf die eine insert -, update-oder delete eines Objekts (delete virtual in meinem system, nur die Einstellung mit einer fahne).
Für jeden AuditEvent, verfolgen Sie das Datum, die authentifizierte Benutzer, db-Aktion, und eine Beschreibung ausgefüllt durch die Anwendung. Umgesetzt wird dies in PersistentObject, so wird es automatisch aufgerufen wird, für jede Datenbank-Aktion für jedes Objekt gespeichert in Mongo.
Diese tatsächliche nahm sich sehr wenig Zeit für die Implementierung, sondern bietet auch die Fähigkeit, um die letzten update-Zeit, und auch alle anderen Informationen, die Sie benötigen für Sicherheit und Kunden-support für alles, was in Mongo.
InformationsquelleAutor der Antwort Ramesh
Nein, MongoDB, die von sich selbst nicht versorgen kann, entweder Schöpfung oder update-Zeitstempel. Sie haben zu tun, dass Sie sich (und wie Sie herausgefunden haben, wenn Sie eine ObjectID _id dann Holen Sie sich das Datum bereits).
InformationsquelleAutor der Antwort Thilo
Können Sie entweder einen audit-trail-Einrichtung, wie @user1530669 erwähnt (ich rufe mir das delta - der code ist bereits irgendwo auf StackOverflow).
Oder Sie können einfach speichern Sie die Letzte Zeit ändern. Ich bin in der Regel mit einer Basis-Entität zu setzen, und alle anderen Elemente erweitern (für Ihre spezielle Anforderung können Sie wahrscheinlich entfernen Sie die
creationDate
alslastChange
ist genug für Sie):Und in Ihren Abfragen, können Sie fügen Sie dann einen filter, so dass die
lastChange
Attribut ist Aktueller als Ihren Abruf begrenzen.InformationsquelleAutor der Antwort xeraa