- Reference >
- Operators >
- Query Modifiers >
- $snapshot
$snapshot¶
-
$snapshot
¶ Note
- Deprecated in the
mongo
Shell since v3.2 - Starting in v3.2, the
$snapshot
operator is deprecated in themongo
shell. In themongo
shell, usecursor.snapshot()
instead.
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 thecursor.snapshot()
method:db.collection.find().snapshot()
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].Warning
- You cannot use
$snapshot
with sharded collections. - Do not use
$snapshot
with$hint
or$orderby
(or the correspondingcursor.hint()
andcursor.sort()
methods.)
[1] You can achieve the $snapshot
isolation behavior using any unique index on invariable fields.- Deprecated in the