在Mongoose插件中添加字段会出现“TypeError:模式路径`CreatedBy.type`的值无效”

时间:2014-10-22 15:47:44

标签: node.js mongodb coffeescript mongoose mongoose-plugins

我正在尝试创建一个CreatedBy Mongoose插件,但在尝试使用ObjectId作为字段类型时,它("account"已经是另一个已定义的集合):

TypeError: Invalid value for schema path `CreatedBy.type`

&安培;这是插件代码:

mongoose =  require 'mongoose'
module.exports = exports = updatedByPlugin = (schema, options) ->
  schema.add CreatedBy:
    type: mongoose.Schema.Types.ObjectId
    ref: "account"
  schema.pre "save", (next) ->
    @CreatedBy = options.accountId
    next()
    return

  schema.path("CreatedBy").index options.index  if options and options.index
  return

那么我如何修改ref值才能使其正常工作?

1 个答案:

答案 0 :(得分:2)

好吧,你不会相信它,但我通过这样添加CreatedBy字段来解决它

schema.add CreatedBy:
   ref: "account"
   type: mongoose.Schema.Types.ObjectId

是的,只需交换ref&的2行。 type !! 。交换这两行可能会破坏代码是很奇怪的:| !!!