回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我在mongodb中插入mongoose的数据时遇到问题</p>
<p>这是我的数据库.js型号:</p>
<pre><code>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
});
</code></pre>
<p>下面是我的python脚本测试:</p>
<pre><code>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)
</code></pre>
<p>这里是我在nodejs和express中的输入点:</p>
<pre><code>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);
}
});
});
</code></pre>
<p>错误如下:</p>
<pre><code>{ [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] } } }
</code></pre>
<p>所以这个错误似乎来自fiters dict字段,但我不明白为什么有人有任何线索。你知道吗</p>
<p>谢谢和问候</p>