首页 文章

Cast错误:在尝试查找时,Cast to String失败了

提问于
浏览
1

我在这里遇到了很奇怪的问题,我可以通过mongoose保存数据,但无法进行查询 . 这是代码:

const mongoose = require('mongoose');
const Schema   = mongoose.Schema;

const CategorySchema = new Schema({
  store : {type: String, required: true, unique: true},
  categories : [{
    parent : String,
    name : String,
  }],
});

CategorySchema.index({store: 1, update_at: -1});

module.exports = mongoose.model('Category', CategorySchema);

当我尝试执行查询时,出现此错误:

(node:7412)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:1):ValidationError:CastError:Cast to String失败,值为“{id:58dd019b1a06731b0990b878,store:'Store-Name-Here',categories:[],_ v :0}“在路径”商店“

我为其他集合设计了非常相似的模式,它们工作得很好但不是这个 .

这是我查询的方式:

Category.findOne({store: 'Store-Name-Here'}).exec().then(result => console.log(result), err => console.log(err));

Category.find().exec(function(err, result) {
    if (err)
        return next(err);
    console.log(result);
})

1 回答

  • 0

    我想我发现了这个问题 . 我尝试将静态方法添加到名为 CategoryScheme.static.init() 的类别方案中 . 删除该方法后,一切正常 . 我想也许已经有一个名为 init() 的方法由于某种原因,我创建了一个可能已经覆盖它的方法 . 这就是导致错误的原因 .

相关问题