Mongoose:强制转换为对象数组失败的值
每当我尝试将这个模式保存到我的数据库文档时,我收到错误:
var schemaForBooks = new Schema({ book: String, author: String, who_has_this: Object, points: Number, upvoted_by_users: [Schema.Types.ObjectId], downvoted_by_users: [Schema.Types.ObjectId] });
rest一切都很好,但把任何东西upvoted_by_users
或downvoted_by_users
,我得到这个错误:
[ERROR] Trace- CastError: Cast to [ObjectId] failed for value "[{"userName":"Vibhu","userId":"3833d1g870feaf4a38723"}]" at path "upvoted_ by_users"
我很确定我在模式本身做错了,但我不知道是什么。
任何帮助,将不胜感激。
该错误说,您正在试图将以下数组的对象{"userName":"Vibhu", "userId":"3833d1g870feaf4a38723"}
转换为ObjectId
数组。
所以,你需要摆脱userName
字段,所以你可以把你的String
+ ObjectId
数组转换成一个ObjectId
数组。
你可以用你的js数组的Array#map
方法来完成,例如:
var arr = [{"userName":"Vibhu","userId":"3833d1g870feaf4a38723"}]; var myCorrectArr = arr.map(field => field.userId);
希望能帮助到你,
最好的祝福,