猫鼬 findByIdAndRemove() 抛出错误
Mongoose findByIdAndRemove() throws error
在我的后端,我想删除一个文档,在我的 MongoDB 数据库中用它的 ID 标记。因此我正在使用下面的代码。但它并没有删除它,而是抛出了一个错误,即它无法设置未定义的 属性 '_id'
代码:
Seller.findByIdAndRemove("594801105cb8571868f9cd55",function (err) {
console.log(err);
});
错误:
TypeError: Cannot set property '_id' of undefined
at resetId (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\schema\objectid.js:204:16)
at ObjectId.SchemaType._applySetters (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\schematype.js:637:22)
at ObjectId.SchemaType.applySetters (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\schematype.js:661:16)
at ObjectId.SchemaType._castForQuery (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\schematype.js:1021:17)
at ObjectId.castForQuery (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\schema\objectid.js:189:15)
at cast (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\cast.js:232:32)
at model.Query.Query.cast (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\query.js:2933:12)
at castQuery (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\query.js:2835:18)
at model.Query.Query._findAndModify (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\query.js:1980:17)
at model.Query.Query.findOneAndRemove (Z:\Documents\Programming\Projext XY\repo\node_modules\mquery\lib\mquery.js:2585:15)
at model.Query.Query._findOneAndRemove (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\query.js:1944:31)
at Z:\Documents\Programming\Projext XY\repo\node_modules\kareem\index.js:257:8
at Z:\Documents\Programming\Projext XY\repo\node_modules\kareem\index.js:23:7
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickCallback (internal/process/next_tick.js:104:9)
经过几个小时的搜索,我找到了解决方案。问题是,在我使用的 mongoose 版本中,只要选择以下选项就会出现此错误:
runSettersOnQuery: true
已在架构上设置。随着 Github 上的最新版本,此问题已解决
在我的后端,我想删除一个文档,在我的 MongoDB 数据库中用它的 ID 标记。因此我正在使用下面的代码。但它并没有删除它,而是抛出了一个错误,即它无法设置未定义的 属性 '_id'
代码:
Seller.findByIdAndRemove("594801105cb8571868f9cd55",function (err) {
console.log(err);
});
错误:
TypeError: Cannot set property '_id' of undefined
at resetId (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\schema\objectid.js:204:16)
at ObjectId.SchemaType._applySetters (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\schematype.js:637:22)
at ObjectId.SchemaType.applySetters (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\schematype.js:661:16)
at ObjectId.SchemaType._castForQuery (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\schematype.js:1021:17)
at ObjectId.castForQuery (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\schema\objectid.js:189:15)
at cast (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\cast.js:232:32)
at model.Query.Query.cast (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\query.js:2933:12)
at castQuery (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\query.js:2835:18)
at model.Query.Query._findAndModify (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\query.js:1980:17)
at model.Query.Query.findOneAndRemove (Z:\Documents\Programming\Projext XY\repo\node_modules\mquery\lib\mquery.js:2585:15)
at model.Query.Query._findOneAndRemove (Z:\Documents\Programming\Projext XY\repo\node_modules\mongoose\lib\query.js:1944:31)
at Z:\Documents\Programming\Projext XY\repo\node_modules\kareem\index.js:257:8
at Z:\Documents\Programming\Projext XY\repo\node_modules\kareem\index.js:23:7
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickCallback (internal/process/next_tick.js:104:9)
经过几个小时的搜索,我找到了解决方案。问题是,在我使用的 mongoose 版本中,只要选择以下选项就会出现此错误:
runSettersOnQuery: true
已在架构上设置。随着 Github 上的最新版本,此问题已解决