/ / mongoose-Unterdokument als String anstelle von Objekt abgerufen - javascript, node.js, mongodb, mongoose

mongoose Filialdokument als String anstelle von Objekt abgerufen - javascript, node.js, mongodb, mongoose

Also, ich habe folgende Objekte

var Sub = {
name: String,
};

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

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

In der Datenbank habe ich folgendes:

db.users.find ({}). pretty (); { "_id": Objekt-ID ("xyz"), "Name": "John", "Unter": { "Name": "Untername" } }

Wenn ich nun nach einem Benutzer mit dem Namen "John" frage, wird das Unterdokument "sub" als Zeichenfolge abgerufen

typeof user s === "string"

Um die Abfrage auszuführen, verwende ich die User.findById-Methode

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

Irgendwelche Hinweise, was hier vor sich geht?

Antworten:

0 für die Antwort № 1

Wenn der Typ eines Felds nicht explizit definiert ist, gibt die interne Mungo-Validierung manchmal eine sanisierte Zeichenfolge zurück. Ich habe es gelöst, indem ich ein Schema in der Vergangenheit definiert habe.

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

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