var bson = new byte[] { 5, 0, 0, 0, 0 }; using (var stream = new MemoryStream(bson)) using (var reader = new BsonDataReader(stream)) { reader.Read(); var bookmark = reader.GetBookmark(); reader.Read(); // do something reader.ReturnToBookmark(bookmark); // reader is back at the first element }
public IEnumerableIn this example, we create a method that reads a stream of BSON documents. We yield return each document, get the bookmark, and do something with the document. By returning to the bookmark position, we can continue reading the next document. The BsonReader class is part of the MongoDB C# driver package.ReadDocuments(Stream stream) { using (var reader = new BsonDataReader(stream)) { while (reader.Read()) { yield return reader.ReadBsonDocument(); var bookmark = reader.GetBookmark(); // do something with the document reader.ReturnToBookmark(bookmark); } } }