Pyramid フレームワーク (素晴らしい) を使用して小さな Web アプリを作成していますが、ドキュメントの更新に問題があります。同じ ID を持つドキュメントのクエリに問題はありません。更新できないようです。私が使用しているコードは次のとおりです。
for key, value in request.POST.iteritems():
if value:
to_insert[key] = value
if "_id" in request.POST:
try:
_id = ObjectId(request.matchdict['id'])
except InvalidId:
return Response("Error generating id")
request.db['concerts'].update(
{ '_id': _id },
{ "$set": to_insert },
upsert=False
)
私が行った場合:
request.db['concerts'].find( {'_id' : _id }
更新したいドキュメントが見つかったので、id が存在しないという問題ではないようです。データベースに何もコミットしていないようです。私が確認できた唯一の問題は、ドキュメント全体を更新したことです。事前にフィールドをチェックしていません。これはこれを行う適切な方法ですか?無差別な数のフィールドの更新に関するドキュメントはあまり見ませんでした。