我正在尝试为我的应用程序生成一个'全能'更新POST查询。
基本上我需要使用标识符ID和要更新的字段来执行POST请求,它会动态更新这些字段。这是我到目前为止(在CoffeeScript中):
router.post '/update', (req, res) ->
whitelist = ['name', 'price', 'quantity', 'checked']
toUpdate = {}
for attr, val of req.body
if attr in whitelist
toUpdate[attr] = val
if toUpdate.length > 0
(req.db.collection 'products').findAndModify {
query: {_id: req.body.id}
update: {$set: toUpdate}
}
问题是,我只能传递它。
例如,如果我想更新布尔值,我不知道如何强制执行正确的类型。
POST请求:
{ checked: 'true' }
这将在数据库中保存,但我想要的是:
{ checked: true }
所以我的问题是,有没有办法自动强制执行正确的类型,以便它将按照我为每个字段定义的一组规则进行转换?
或者我必须在保存之前手动编码吗?
我试着在MongoDB中查找创建模型,但它实在是一团糟,我无法理解文档中的任何内容。谷歌没有取得好成绩,因为我似乎无法在搜索查询中正确地说出我想要的内容。