Ich versuche, ein Element aus einer Mongo-Sammlung abzurufen, das mit dem größten _id-Feld. Ich weiß, das durch die Abfrage durchgeführt werden kann:Verwenden von findOne in mongodb, um Element mit maximaler ID zu erhalten
db.collection.find().sort({_id: -1}).limit(1)
Aber es ist eine Art scheint unelegant und ich habe mich gefragt, ob es eine Möglichkeit gibt, dass bestimmte Element mit FindOne()
Hinweis zu bekommen: ich tun möchte, Dies, weil die ersten Bytes, die ich in ObjectId gelesen habe, den Millisekunden seit der Epoche entsprechen und somit das letzte Element, das eingefügt wird, die größte _id haben wird. Gibt es eine andere Möglichkeit, das letzte in eine Sammlung eingefügte Element abzurufen?
Es gibt nichts unelegant über Ihre ursprüngliche Methode, eigentlich. – JohnnyHK
Denken Sie daran, dass die 'ObjectId' normalerweise vom Client-Treiber erstellt wird, daher ist sie nur so genau/zuverlässig wie die verwendeten Clients. Wenn zwei Treiber in derselben Sekunde eingefügt werden, sind die Ergebnisse nicht vorhersehbar. – WiredPrairie