This version of the documentation is archived and no longer supported.



The $snapshot operator prevents the cursor from returning a document more than once because an intervening write operation results in a move of the document.

Even in snapshot mode, objects inserted or deleted during the lifetime of the cursor may or may not be returned.

The mongo shell provides the cursor.snapshot() method:


You can also specify the option in either of the following forms:

db.collection.find()._addSpecial( "$snapshot", true )
db.collection.find( { $query: {}, $snapshot: true } )

The $snapshot operator traverses the index on the _id field [1].


[1]You can achieve the $snapshot isolation behavior using any unique index on invariable fields.