上InvalidDocument私は現在、更新をpymongoまで渡すためにdict
にそれを変換するためにその使用eval
(ast_eval
)の後に、文字列でクエリを構築しようとしています。Pythonの-Pymongo:キー<bson.ObjectId>
for item in default_properties:
query = '{"_id": {ObjectId:"%s"}}' % (oid)
if (doc["diff_id"] == diff_id):
default_val_pos = [line[0], line[1],line[2],line[3],line[4],line[5],line[6],line[7],line[8]]
update_val = '{ "$set":{"properties.%s": default_val_pos[%d] } }' % (item,idx)
db.routes.update(eval(query), eval(update_val))
は、私がmongoshellに自身が同じクエリを受け付けますので、それは今大丈夫であることを考え、唯一の違いは、私はそれをうまくフォーマットするfrom bson.objectid import ObjectId
を使用したことで、しかし、このエラーが発生しました:
InvalidDocument: documents must have only string keys, key was <class 'bson.objectid.ObjectId'>
限り、私はそれを見る限り、私はObjectId以外の文字列ではない "フィールドキー"を持っていないと私はハードコードされた文字列LOLでObjectIdを回す必要がないと思うhmmm。だから私は誰かが何が問題なのか説明できるかどうか疑問に思っていたのですか?
ありがとうございます!
ah!そうです。私が間違っている箇所を明確かつ簡潔に説明していただきありがとうございます。また、最後のものを提案するために!私は "私がそれをする"ことを忘れてしまった!再度、感謝します! – Reiion