/ / mongoose subdocument získaný ako reťazec namiesto objektu - javascript, node.js, mongodb, mongoose

Mongoose subdocument získaný ako reťazec namiesto objektu - javascript, node.js, mongodb, mongoose

Takže mám nasledujúce predmety

var Sub = {
name: String,
};

var UserSchema = new mongoose.Schema({
name: String,
sub: Sub
});

module.exports = mongoose.model("User", UserSchema);

V databáze mám nasledovné:

db.users.find ({}) dost (). { "_id": ObjectId ("xyz"), "meno": "John", "sub": { "name": "Sub-Name" } }

Teraz, keď žiadam užívateľa s menom "John", sub-dokument "sub" sa načíta ako reťazec

typeof user.sub === "reťazec"

Ak chcete vykonať dotaz, používam metódu User.findById

User.findById("xyz", function(err, user){
console.log(typeof user.sub);
})

Akékoľvek dôkazy, čo sa tu deje?

odpovede:

0 pre odpoveď č. 1

Ak typ poľa nie je definovaný explicitne, vnútorné validovanie Mongoose vráti niekedy sanatized string. Vyriešil som to definovaním schémy v minulosti.

var Sub = new mongoose.Schema({
name: String
});

var UserSchema = new mongoose.Schema({
name: String,
sub: [ Sub ]
});