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_usersdownvoted_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); 

希望能帮助到你,
最好的祝福,