Mongoose population ref object

65 views
Skip to first unread message

Martin Lbc

unread,
Jan 16, 2014, 10:24:18 AM1/16/14
to mongoo...@googlegroups.com
Hello,
I have a problem with a population.

This is models and schemas.

var schemaRefEquipement = new mongoose.Schema({
      idEquipement
: {type : mongoose.Schema.Types.ObjectId, ref : 'Equipement'},
      quantite
: { type: Number, default: 1 }
});

var schemaJoueur = new mongoose.Schema({
     equipementsPortes
: [{type : mongoose.Schema.Types.ObjectId, ref : 'Equipement'}],
     equipementsInventaires
: [mongoose.Schema.
schemaRefEquipement]
});

var schemaEquipement = new mongoose.Schema({
     niveau
: Number,
     nom
: String,
});

RefEquipement = mongoose.model('RefEquipement', schemaRefEquipement);
Joueur = mongoose.model('Joueur', schemaJoueur);
Equipement =  mongoose.model('Equipement', schemaEquipement);


When I use that it's ok :

Joueur
.findOne({ })
.populate('equipementsPortes')
.exec(function(error, results) {
    console
.log(results);

});

But that it's not ok :

Node message : equipementsInventaires: [ { idEquipement: null, quantite: 1 } ]

but idEquipement is not null.



Joueur
.findOne({ })
.populate('equipementsInventaires.idEquipement')
.exec(function(error, results) {
    console
.log(results);

})


This is documents' equipements' :

{
"chance": 1,
"magie": 1,
"puissance": 1,
"vitalite": 1,
"image": "botte.png",
"niveau": 1,
"nom": "bottes test",
"prix": 100,
"poids": 1,
"pourcentageObtention": 1,
"type": "bottes",
"_id": new ObjectID("52d6856d5f5ad08c0d54f5a8"),
"__v": 0


}



And 'joueurs' :

{
"dateAction": new Date("1970-01-01T00:00:00.000Z"),
"image": "NUL",
"nom": "lolo",
"_id": new ObjectID("52d6856d5f5ad08c0d54f5a6"),
"xp": 0,
"vitalite": 1,
"vie": 50,
"ressources": [],
"puissance": 1,
"posY": 1,
"posX": 1,
"pointDispo": 5,
"or": 0,
"niveau": 1,
"metiers": [],
"magie": 1,
"habilite": 1,
"estMort": false,
"equipementsInventaires": [ {
   
"quantite": 1,
   
"idEquipement": new ObjectID("52d6856d5f5ad08c0d54f5a8")
} ],
"equipementsPortes": [ new ObjectID("52d6856d5f5ad08c0d54f5a8") ],
"chance": 1,
"__v": 0


}


Have you got an idea?

Thank you!


Ps : sorry for my english.. !

Martin Lbc

unread,
Jan 25, 2014, 10:34:58 AM1/25/14
to mongoo...@googlegroups.com
I have find the solution.

It was very simple, I used :

console.log(results); ==> return [Object]

But it's

console.log(results.equipementsInventaires); ==> return [{quantite : 1, idEquipement : {"chance" : ... }}]


Reply all
Reply to author
Forward
0 new messages