Mangouste Schéma d'Erreur: “Jette à la chaîne a échoué pour valeur” lors de la poussée de l'objet de tableau vide

J'ai un problème étrange et ne peut pas comprendre ce qu'est le problème. Le message d'Erreur n'aide pas.

Je suis l'envoi d'une "alarme" sur le serveur et que vous voulez enregistrer cette alarme à mon "appareil" qui existent déjà dans la base de données.

L'objet d'alarme-je l'envoyer au serveur ressemble à ceci:

{actionTaken: "none", 
dateTime: "20152111191512", 
difference: 4.88, 
timestamp: 1448128894781}

Le Schéma de l'appareil comme suit:

var deviceSchema = new Schema({
   deviceId: {
        type : String,
        index : {
            unique : true,
            dropDups : true
        }
    },
    alarms : [ {
        timestamp : Number,
        dateTime : String, //yyyymmddhhss
        difference : Number,
        actionTaken : String, //"send sms"
    } ]
});

Je charge l'appareil à partir de la base de données (id est):

Thermometer.findOne({
        deviceId : deviceId
}, function(error, device){ 
   //error handling
   var now = (new Date().getTime());
   var nowDateTime = (new Date()).toISOString().slice(0, 19).replace(/[-T\s:]/g, "");
   var newAlarm = {
       timestamp : now,
       dateTime : nowDateTime, //yyyymmddhhmmss
       difference : diff,
       actionTaken : "none"
   };
   device.alarms.push(newAlarm);  //EXCEPTION !

   //      device.save //doesn't get called
});

Comme vous pouvez le voir dans les commentaires, j'obtiens une Exception ou d'Erreur quand je veux pousser le "newAlarm"objet pour les alarmes-tableau de mon appareil.

Le message d'Erreur indique: Fonte de la chaîne a échoué pour valeur "[object object]" dans le chemin "alarmes"

Erreur-Objet:

   kind: "string",
   message: "Cast to string failed for value "[object Object]" at path "alarms"",
   name: "CaseError",
   path: "alarms",
   stack: undefined,
   value: {actionTaken: "none", dateTime: "20152111191512", difference: 4.88, timestamp: 1448128894781}

Avez-vous une idée?

Pour moi, il ne fait aucun sens. Le tableau et son contenu (l'objet) est spécifié dans le Schéma. Pourquoi est-il une chaîne de fonte d'erreur avec l'ensemble de l'objet comme valeur?

Ce que j'utilise:

"express": "3.2.6",
"express-session":"1.7.6",
"hjs": "*",
"mongoose": "4.0.5",
"nodemailer": "1.4.0"

EDIT: je ne veux pas utiliser les Schémas imbriqués. Il est également possible de le faire avec des tableaux. - Je le faire avec des tableaux dans d'autres Schémas.

EDIT 2:
J'ai ajouté une propriété "lastAlarm" et ne

device.lastAlarm = alarm;

mais après que, d'un thermomètre.lastAlarm est toujours pas défini... mais l'alarme est un objet. Ainsi est-il possible que l'appareil de l'objet est verrouillé certains comment?

possible, il vous aidera à --Link--
J'ai déjà trouvé, mais malheureusement n'a pas aider

OriginalL'auteur Laokoon | 2015-11-21