我在这里遇到了很奇怪的问题,我可以通过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:未处理的承诺 rejection(rejection id:1):ValidationError:CastError:Cast to 字符串失败,值为“{_id:58dd019b1a06731b0990b878,存储: 'Store-Name-Here',类别:[],__ 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);
})
答案 0 :(得分:0)
我想我发现了这个问题。我尝试将静态方法添加到名为CategoryScheme.static.init()
的类别方案中。删除该方法后,一切正常。我想也许已经有一个名为init()
的方法由于某种原因,我创建了一个可能已经覆盖它的方法。这就是导致错误的原因。