我正在使用 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 不存在的问题。它似乎没有向数据库提交任何内容。我能看到的唯一问题是我更新了整个文档——我没有事先检查这些字段。这是解决这个问题的正确方法吗?我在文档中没有看到太多关于更新不分青红皂白的字段的内容。