2017-10-16 7 views
0

J'utilise MongoDB avec Mongoose sur Node.js avec Express et essayé d'accéder à un document dans une collection comme celui-ci:API de noeud mongoDB - Impossible d'accéder aux valeurs des clés de résultat?

{ 
    _id:"ATypicalObjectID", 
    name:"object", 
    en:{AnotherObjectWithStuffInside} 
} 

Avec une fonction dans mon middleware comme celui-ci:

collection.findOne({name:"object"}).then(function(object){ 
    console.log(object, object.en, object[en], object.getValue("en")); 
}); 

et le résultat est connecté {TheTextObjectmentionnedAbove}, undefined, undefined, {AnotherObjectWithStuffInside}
Mais je ne comprends pas pourquoi j'ai ces deux undefined(even on the mongoDB Node.js driver API) et utiliser cette fonction getValue() parce que j'ouvert une session tous les résultats clés d'objet! (Est-ce une solution de contournement ou de la bonne façon d'accéder à une valeur de document retourné?)

+0

pouvez-vous expliquer plus et je pense que vous avez besoin de revérifier ce code encore une fois ... – Shubham

+0

@Shubham J'ai édité ma question, pourriez-vous s'il vous plaît être plus précis sur la partie de mon code que je devrais revérifier? (Je l'ai simplifié) – PaulCo

+0

où définissez-vous le texte? –

Répondre

0

Ok, Novice erreur: je besoin de mettre à jour mon mangouste schéma à

{ 
    _id: mongoose.Schema.Types.ObjectId, 
    name: String, 
    en: mongoose.Schema.Types.Mixed 
} 

Et maintenant, je peux facilement accéder à object.en !