find
を使用する必要があります 、すでにのように、すべてをスキャンする必要があるため、集約が遅くなることはありません。 最大値を計算するための_idフィールドの値。
コメントが指摘しているように、ない find()とfindOne()の使用の違い-機能的またはエレガンス的に。実際、findOne
シェル内(およびそれを実装するドライバー内)は、検索の観点から定義されます(制限は-1で、シェルにはかなりの印刷があります)。
本当に
と同等のことをしたいdb.collection.find().sort({_id:-1}).limit(1).pretty()
findOne
として 次の構文でそれを行うことができます:
db.collection.findOne({$query:{},$orderby:{_id:-1}})