我在mongodb中插入mongoose的数据时遇到问题
这是我的数据库.js型号:
var Appointment = new Schema({
date: Date,
coach: ObjectId,
complement: String,
isOwner: Boolean,
fiter : ObjectId,
fiters: [
{
user: ObjectId,
isOwner: Boolean,
status: String,
invitationDate: Date
}
],
place: ObjectId,
objectif : ObjectId,
pricing: Number,
status: String,
ratings: [
{
date: Date,
user: ObjectId,
score: Number,
comment: String,
target: ObjectId,
targetType: String
}
],
annulation : Boolean,
late: Number,
log: [{
logType: String,
date: Date,
user: ObjectId,
details: String,
relatedTo: ObjectId
}]
},
{
timestamps: true
});
下面是我的python脚本测试:
appointment = {
"_id":idFiter,
"date": "2016-09-25T00:00:00.0000000Z",
"coach":"57dfd22f7f8effc700bfa16f",
"fiters" : [
{
"user": "57da891db39797707093c6e1",
"isOwner": False,
"status": "invite",
"invitationDate": "2016-09-25T00:00:00.0000000Z",
}],
"place" : "57d66a5b73c0ab6c007beb74",
"objectif": "57e28b64cae2161f33b641e3",
}
r = requests.post("http://127.0.0.1:8010/appointment/", data=appointment,headers=headers)
print(r.status_code)
print(r.content)
这里是我在nodejs和express中的输入点:
router.post('/', authenticate.passport.authenticate('bearer', { session: false }), function(req, res) {
appointmentToInsert =
{
date : req.body.date,
coach : req.body.coach,
fiter : req.body._id,
fiters : req.body.fiters,
place : req.body.place,
objectif : req.body.objectif,
isOwner : true,
};
new Appointment(appointmentToInsert).save(function (error, appointment) {
if (error == null) {
res.status(200).send(appointment);
} else {
console.log(error);
res.status(500).send(error);
}
});
});
错误如下:
{ [ValidationError: Appointment validation failed]
message: 'Appointment validation failed',
name: 'ValidationError',
errors:
{ fiters:
{ [CastError: Cast to Array failed for value "[ 'status', 'isOwner', 'invitationDate', 'user' ]" at path "fiters"]
message: 'Cast to Array failed for value "[ \'status\', \'isOwner\', \'invitationDate\', \'user\' ]" at path "fiters"',
name: 'CastError',
kind: 'Array',
value: [Object],
path: 'fiters',
reason: [Object] } } }
所以这个错误似乎来自fiters dict字段,但我不明白为什么有人有任何线索。你知道吗
谢谢和问候
Python脚本只发送
fiters
的字典键,请尝试添加.items()
以发送2元组。我不确定你的ORM需要哪种格式。你知道吗如果这不起作用,JSON还可以用来通过POST传递复杂的结构。你知道吗
答案是发送json而不是数据:
相关问题 更多 >
编程相关推荐