私はpymongoドライバを使用しています。次のように文字列を使用してドキュメントの_idフィールドを照会することができます。Pythonを使用してstringを使用して_idのMongoDBを照会する正しい方法は何ですか?
thing = db.things.find_one({'_id':'4ea113d6b684853c8e000001'})
これはうまくいきません。私は間違って何をしていますか?
私はpymongoドライバを使用しています。次のように文字列を使用してドキュメントの_idフィールドを照会することができます。Pythonを使用してstringを使用して_idのMongoDBを照会する正しい方法は何ですか?
thing = db.things.find_one({'_id':'4ea113d6b684853c8e000001'})
これはうまくいきません。私は間違って何をしていますか?
を動作するはずですそれは次のようになります。
from pymongo.objectid import ObjectId
thing = db.things.find_one({'_id': ObjectId('4ea113d6b684853c8e000001') })
EDIT: 現在のインポートは次のとおりです。 from bson.objectid import ObjectId
PyMongoは、その構造を変更しました。 ObjectID
はpymongo
からインポートされなくなりましたが、bson
からインポートされました。それは今のようになります。リマインダーとして
from bson.objectid import ObjectId
thing = db.things.find_one({'_id': ObjectId('4ea113d6b684853c8e000001')})
、pypi/pymongoごとに、「BSON」パッケージをインストールしないでください。 PyMongoには独自のbsonパッケージが付属しています。 "pip install bson"を実行すると、PyMongoと互換性のないサードパーティのパッケージがインストールされます。
参照http://stackoverflow.com/questions/10401499/mongokit-importerror-no-module-named-objectid-error – Sean
PyMongoのマニュアルが現在のバージョンと同期していないようです。 ObjectIdsは現在bson.objectid名前空間の下にあります。私が正しく覚えていれば、彼らはバージョン2.3以降のやり方です。 bson.objectidからの使用ObjectIdをインポートします。それを印刷するには
:
import pymongo
from bson.objectid import ObjectId
print(db.things.find_one({'_id': ObjectId('4ea113d6b684853c8e000001')}))
を印刷したくない場合は、あなたの答えは、正しいですが、それは私が行方不明になった輸入した、歓声lobster1234他
ああ、輸入はすべての違いを、ありがとう! – MFB
for pymongo> 2.2を参照してください。https://stackoverflow.com/a/10919658/6613450 –