在MongoDB和Node.js中通过POST保存时,如何强制执行字段类型? Aka,如何创建模型

时间:2014-09-29 10:24:39

标签: node.js mongodb

我正在尝试为我的应用程序生成一个'全能'更新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中查找创建模型,但它实在是一团糟,我无法理解文档中的任何内容。谷歌没有取得好成绩,因为我似乎无法在搜索查询中正确地说出我想要的内容。

0 个答案:

没有答案