用错误更新文档:对于未定义的值,转换为string失败

我有一个简单的文件,名称(要求),描述(可选)。 在我的模型中,我用一个有效的id更新文档,并将值undefined传递给描述,因为我想从文档中删除这个属性。 但是,我得到以下错误: 消息=投入string失败的价值“未定义”path“描述”,名称= CastError,types=string,值=未定义,path=说明 。 当用户不提供描述时,如何删除更新的描述属性? 可能吗?

谢谢

/*jslint indent: 2, node: true, nomen: true*/ 'use strict'; var Schema = require('mongoose').Schema; var mongoose = require('mongoose'); var mongooser = require('../../lib/mongooser'); // Schema var schema = new Schema({ name: { required: true, set: mongooser.trimSetter, trim: true, type: String, unique: true }, description: { set: mongooser.trimSetter, trim: true, type: String } }); // Export module.exports = mongoose.model('Role', schema); 

// Role.js

 var update = function (model, callback) { var test = { name: 'Users', description: undefined }; RoleSchema.findByIdAndUpdate(model.id, test, function (error, role) { callback(error, role); }); }; 

尝试下降到这样的本地驱动程序:

 var update = function (model, callback) { RoleSchema.update({_id: model.id}, {$unset: {description: 1 }}, callback); }); };