code: func (q *Query) Snapshot() *Query {
  	q.m.Lock()
  	q.op.options.Snapshot = true
  	q.op.hasOptions = true
  	q.m.Unlock()
  	return q
  }
docs: // Snapshot will force the performed query to make use of an available
  // index on the _id field to prevent the same document from being returned
  // more than once in a single iteration. This might happen without this
  // setting in situations when the document changes in size and thus has to
  // be moved while the iteration is running.
  //
  // Because snapshot mode traverses the _id index, it may not be used with
  // sorting or explicit hints. It also cannot use any other index for the
  // query.
  //
  // Even with snapshot mode, items inserted or deleted during the query may
  // or may not be returned; that is, this mode is not a true point-in-time
  // snapshot.
  //
  // The same effect of Snapshot may be obtained by using any unique index on
  // field(s) that will not be modified (best to use Hint explicitly too).
  // A non-unique index (such as creation time) may be made unique by
  // appending _id to the index when creating it.
  //
  // Relevant documentation:
  //
  //     http://www.mongodb.org/display/DOCS/How+to+do+Snapshotted+Queries+in+the+Mongo+Database
  //