擅长:python、mysql、java
<p>您需要确保数据类型匹配。MongoDB对类型很严格。执行此操作时:</p>
<pre><code>find_one({"book_id": "23302213"})
</code></pre>
<p>您正在向MongoDB请求<code>book_id</code>等于<code>"23302213"</code>的文档。由于您没有将<code>book_id</code>存储为<code>string</code>类型,而是存储为<code>long</code>类型,因此查询需要考虑:</p>
^{pr2}$
<p>如果出于某种原因,你的应用程序中的ID为string,这也可以:</p>
<pre><code>find_one({"book_id": long("23302213")})
</code></pre>
<p><strong>更新</strong></p>
<p>只需检查它(MacOS64bit、MongoDB 2.6、Python2.7.5、PyMongo2.7),即使提供了一个整数,它也能正常工作。在</p>
<p>集合中的文档(由Mongo shell显示):</p>
<pre><code>{ "_id" : ObjectId("536960b9f7e8090e3da4e594"), "n" : NumberLong(222333444) }
</code></pre>
<p>python shell的输出:</p>
<pre><code>>>> collection.find_one({"n": 222333444})
{u'_id': ObjectId('536960b9f7e8090e3da4e594'), u'n': 222333444L}
>>> collection.find_one({"n": long(222333444)})
{u'_id': ObjectId('536960b9f7e8090e3da4e594'), u'n': 222333444L}
</code></pre>