0

次の例を検討してください。

f = {'a': 'b'}
col.insert(f)
print f

colは mongodb コレクションです。

上記のコードは、次の行の中に何かを出力します。

{'a': 'b', '_id': ObjectId('5278bc183e8b1310247e047b')}

ドキュメントをコレクションに挿入するときにmongoが_idフィールドを追加する必要がある理由はわかっていますが、引数として渡す辞書を変更する必要がある理由がわかりません。辞書fを変更せずに残しておきたいです。

挿入の直後にできることはわかっていますが、dictを変更しないようにdel f['_id']渡すことができる引数はありますか?insert

4

2 に答える 2

3

manipulate引数をに設定するだけですFalse。例:

col.insert(f, manipulate=False)

http://api.mongodb.org/python/current/api/pymongo/collection.html#pymongo.collection.Collection.insertを参照してください。

于 2013-11-05T09:59:44.463 に答える
1

挿入メソッドに関するドキュメントを正しく理解していれば、manipulateパラメーターはあなたが探しているものです:

操作が True の場合、ドキュメントは、このデータベースに追加された任意の SONManipulator インスタンスを使用して操作されます。この場合、ドキュメントに「_id」がまだ含まれていない場合は「_id」が追加され、「id」(または複数のドキュメントの場合は「_id」値のリスト) が返されます。操作が False で、ドキュメントに「_id」が含まれていない場合、サーバーによって追加されます。サーバーは作成した「_id」を返さないため、None が返されます。

于 2013-11-05T10:00:23.363 に答える