问题
我的目标是在我的收藏子集中拥有一个独特的字段。特别是产品艺术中的序列号应该是唯一的。因此,如果艺术不同,则可能有两个相似的序列号,但如果艺术相同,则只有一个。
检查我是否想使用mongoose pre middleware
(如果没有更好的解决方案schema level
)。
种植体.schema.coffee
ImplantModel = require('./implant.model.js')
...
implantSchema = mongoose.Schema({
art: {
type: String,
required: true
},
serialNr: {
type: String,
required: true
},
...
validateImplant = (data, next) ->
err = ""
if !data.art? || data.art == ""
err += "Keine Implantatbezeichnung vorhanden!\n"
if !data.serialNr? || data.serialNr == ""
err += "Keine Seriennummer vorhanden!\n"
return next err if err != ""
inspect ImplantModel
# ImplantModel.findOne({serialNr: data.serialNr, art: data.art}, (err, implantFound) ->
# return next err if err?
# return next "Eine Seriennummer darf nur einmlaig pro Hersteller angelegt werden!"
# return next null
# )
next
种植体.模型.咖啡
mongoose = require('mongoose')
implantSchema = require('./implant.schema.js').getSchema()
try
module.exports = mongoose.model('Implant', implantSchema)
catch err
module.exports = mongoose.model('Implant')
问题是那ImplantModel
似乎是{}
在那个时候。我也尝试过this.constructor.findOne
这里提到的如何从 Node.js / Express 应用程序中的 Mongoose 预挂钩中查询?这给了我findOne is not a function
我可以在调用.save
方法之前执行查询,但我想钩子会是更好的地方。