This file is indexed.

/usr/share/doc/python-pymongo-doc/html/examples/tailable.html is in python-pymongo-doc 3.6.1+dfsg1-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Tailable Cursors &#8212; PyMongo 3.6.1 documentation</title>
    <link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '3.6.1',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true,
        SOURCELINK_SUFFIX: '.txt'
      };
    </script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <script type="text/javascript" src="../_static/sidebar.js"></script>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="TLS/SSL and PyMongo" href="tls.html" />
    <link rel="prev" title="PyMongo and mod_wsgi" href="mod_wsgi.html" /> 
  </head>
  <body>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="tls.html" title="TLS/SSL and PyMongo"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="mod_wsgi.html" title="PyMongo and mod_wsgi"
             accesskey="P">previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../index.html">PyMongo 3.6.1 documentation</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Examples</a> &#187;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <div class="section" id="tailable-cursors">
<h1>Tailable Cursors<a class="headerlink" href="#tailable-cursors" title="Permalink to this headline">ΒΆ</a></h1>
<p>By default, MongoDB will automatically close a cursor when the client has
exhausted all results in the cursor. However, for <a class="reference external" href="https://docs.mongodb.org/manual/core/capped-collections/">capped collections</a> you may
use a <a class="reference external" href="https://docs.mongodb.org/manual/reference/glossary/#term-tailable-cursor">tailable cursor</a>
that remains open after the client exhausts the results in the initial cursor.</p>
<p>The following is a basic example of using a tailable cursor to tail the oplog
of a replica set member:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">time</span>

<span class="kn">import</span> <span class="nn">pymongo</span>

<span class="n">client</span> <span class="o">=</span> <span class="n">pymongo</span><span class="o">.</span><span class="n">MongoClient</span><span class="p">()</span>
<span class="n">oplog</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="n">local</span><span class="o">.</span><span class="n">oplog</span><span class="o">.</span><span class="n">rs</span>
<span class="n">first</span> <span class="o">=</span> <span class="n">oplog</span><span class="o">.</span><span class="n">find</span><span class="p">()</span><span class="o">.</span><span class="n">sort</span><span class="p">(</span><span class="s1">&#39;$natural&#39;</span><span class="p">,</span> <span class="n">pymongo</span><span class="o">.</span><span class="n">ASCENDING</span><span class="p">)</span><span class="o">.</span><span class="n">limit</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>
<span class="nb">print</span><span class="p">(</span><span class="n">first</span><span class="p">)</span>
<span class="n">ts</span> <span class="o">=</span> <span class="n">first</span><span class="p">[</span><span class="s1">&#39;ts&#39;</span><span class="p">]</span>

<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
    <span class="c1"># For a regular capped collection CursorType.TAILABLE_AWAIT is the</span>
    <span class="c1"># only option required to create a tailable cursor. When querying the</span>
    <span class="c1"># oplog the oplog_replay option enables an optimization to quickly</span>
    <span class="c1"># find the &#39;ts&#39; value we&#39;re looking for. The oplog_replay option</span>
    <span class="c1"># can only be used when querying the oplog.</span>
    <span class="n">cursor</span> <span class="o">=</span> <span class="n">oplog</span><span class="o">.</span><span class="n">find</span><span class="p">({</span><span class="s1">&#39;ts&#39;</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;$gt&#39;</span><span class="p">:</span> <span class="n">ts</span><span class="p">}},</span>
                        <span class="n">cursor_type</span><span class="o">=</span><span class="n">pymongo</span><span class="o">.</span><span class="n">CursorType</span><span class="o">.</span><span class="n">TAILABLE_AWAIT</span><span class="p">,</span>
                        <span class="n">oplog_replay</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
    <span class="k">while</span> <span class="n">cursor</span><span class="o">.</span><span class="n">alive</span><span class="p">:</span>
        <span class="k">for</span> <span class="n">doc</span> <span class="ow">in</span> <span class="n">cursor</span><span class="p">:</span>
            <span class="n">ts</span> <span class="o">=</span> <span class="n">doc</span><span class="p">[</span><span class="s1">&#39;ts&#39;</span><span class="p">]</span>
            <span class="nb">print</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
        <span class="c1"># We end up here if the find() returned no documents or if the</span>
        <span class="c1"># tailable cursor timed out (no new documents were added to the</span>
        <span class="c1"># collection for more than 1 second).</span>
        <span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
</pre></div>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h4>Previous topic</h4>
  <p class="topless"><a href="mod_wsgi.html"
                        title="previous chapter">PyMongo and mod_wsgi</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="tls.html"
                        title="next chapter">TLS/SSL and PyMongo</a></p>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/examples/tailable.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
<div id="searchbox" style="display: none" role="search">
  <h3>Quick search</h3>
    <form class="search" action="../search.html" method="get">
      <div><input type="text" name="q" /></div>
      <div><input type="submit" value="Go" /></div>
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="tls.html" title="TLS/SSL and PyMongo"
             >next</a> |</li>
        <li class="right" >
          <a href="mod_wsgi.html" title="PyMongo and mod_wsgi"
             >previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../index.html">PyMongo 3.6.1 documentation</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="index.html" >Examples</a> &#187;</li> 
      </ul>
    </div>
    <div class="footer" role="contentinfo">
        &#169; Copyright MongoDB, Inc. 2008-present. MongoDB, Mongo, and the leaf logo are registered trademarks of MongoDB, Inc.
    </div>
  </body>
</html>