mongoose.js CastError: Cast nicht bestanden (Anzahl) für den Wert "[object object]" im Pfad "undefined"
Mit Mongoose.js
mit node.js
.
Habe ich dieses schema:
var Photo = new Schema({
URL:String
,description:String
,created_by:{type:ObjectId, ref:'User'}
,created_at:{type:Date, default:Date.now()}
});
var User = new Schema({
name:{type:String,index:true}
,email:{type:String,index:true, unique:true}
});
//Task model
var Task = new Schema({
title:String
,created_by:{type:ObjectId, ref: 'User'}
,created:{type:Date, default:Date.now()}
,responses:[{
type:Number
,user:{type:ObjectId, ref: 'User'}
,comment:String
,avatarURL:String
,photo:{type:ObjectId, ref: 'Photo'}
,created:{type:Date, default:Date.now()}
}]
});
//Group model
var Group = new Schema({
name:String
,tasks:[Task]
});
und dieser Fehler code aus (die Gruppe ist in Ordnung, ist die Aufgabe an, die idx ist in Ordnung,Antworten ein leeres array ist,ist der Benutzer gültig,Foto gültig ist):
var typePhoto = 6;
var resp = {
type: typePhoto//photo
,user: user._id
,photo: photo._id
};
group.tasks[taskIdx].responses.push(resp); //errors out here
in diesem Punkt bekomme ich folgende Fehlermeldung:
/home/admin/notitws/node_modules/mongoose/lib/utils.js:434
throw err;
^
CastError: Cast to number failed for value "[object Object]" at path "undefined"
at SchemaNumber.cast (/home/admin/notitws/node_modules/mongoose/lib/schema/number.js:127:9)
at Array.MongooseArray._cast (/home/admin/notitws/node_modules/mongoose/lib/types/array.js:78:15)
at Object.map (native)
at Array.MongooseArray.push (/home/admin/notitws/node_modules/mongoose/lib/types/array.js:187:23)
at exports.taskAddPhoto (/home/admin/notitws/routes/group.js:1097:35)
at Promise.exports.createPhoto (/home/admin/notitws/routes/photos.js:106:4)
at Promise.addBack (/home/admin/notitws/node_modules/mongoose/lib/promise.js:128:8)
at Promise.EventEmitter.emit (events.js:96:17)
at Promise.emit (/home/admin/notitws/node_modules/mongoose/lib/promise.js:66:38)
at Promise.complete (/home/admin/notitws/node_modules/mongoose/lib/promise.js:77:20)
Irgendwelche Ideen auf, wie man dieses Problem beheben oder was verursacht es?
PS weiß nicht, ob es zählt, aber in den Aufruf von get-Gruppe bin ich Auffüllen tasks.responses.user
und tasks.responses.photo
und tasks.created_by
.
- Es wurde der Wert in der Datenbank, die nicht den Typ zu konvertieren. Der Wert wird gespeichert in Ordnung war. Es ist merkwürdig, dass der Fehler tritt auf "speichern" und nicht auf das finden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den "type" - Schlüsselwort wird verwendet, indem Mungo, um zu bestimmen, die Art des Feldes. Mungo, der denkt sich wohl, dass die Antworten vom Typ Zahl anstelle von array.
Versuchen:
Andere alternative wäre, wickeln Sie Ihre response-Objekt in ein schema dann:
default: Date.now
ohne die () Klammern?Ich bin Entsendung, was meine Feste casting zu objectId. Es ist die Geschichte von updatedBy wichtigsten meiner Eigenschaften Dokument. Ich habe einige Kommentare Hinzugefügt, um zu zeigen Sie der problematische Bereich entspricht der casting-Problem.
import Mungo;
definieren objectId;
definieren Sie den Typ im schema;
und legen Sie dann das Dokument per post-Methode;
schließlich Ihre json-string. Sie können Feuer aus google chrome javascript-Konsole oder eine ähnliche;