mongo:通过id更新文档

时间:2013-11-22 18:12:07

标签: node.js mongodb

好的,这应该是相当简单的,所以我认为我可能会犯一个思维错误。

我有一份现有文件。我将它与ObjectId一起提供给客户端。客户端修改并希望更新文档。所以它带有id - 看起来对我来说是一个很好的选择,以确定我想要更新哪个文件(?)。

但是我收到一个错误: [MongoError:不允许在_id上修改]

这是更新的代码(通过HTTP PUT):

     id = req.body._id
     Item.update({'_id': id }, req.body, (err) ->

1 个答案:

答案 0 :(得分:2)

因此,您需要从发送的“更新”对象中删除_id密钥。 _.omit可以为此提供便利。

Item.update {_id: req.body._id}, _.omit(req.body, '_id'), (err) ->

除此之外:我经常看到这样的代码。从数据完整性和安全性的角度来看,从浏览器获取输入并将其推入数据库是一个糟糕的主意。就像大多数企业一样,不要只是用笔将他们的会计账本留在柜台上,并要求客户在那里无人监管地写信。请考虑强制执行数据架构,授权和一些验证。