Ich habe das folgende Schema auf mongoose eingerichtet, ich benutze Version 3.6.17:
%Vor%Und die folgenden virtuellen Dateien:
%Vor%Wenn ich eine zusammengefasste Abfrage mache:
%Vor%An diesem Punkt kehren die virtuellen Objekte zurück, aber sie kehren mit dem Attribut this.cover oder this.video undefined zurück.
Und wenn ich eine Post.findOne (..). lean (). populate (...) usw. mache, bekomme ich die virtuellen überhaupt nicht, auch nicht mit einer Post.find (). mager (). füllen (...)
Fehle ich etwas im Post-Schema, um die virtuellen zurückzugeben, oder mache ich etwas falsch? Und warum geben die virtuellen Dateien bei der Aggregatoperation den Wert "this.cover" als undefiniert zurück?
Danke!
lean
-Abfragen geben die rohe MongoDB
-Treiberantwort als reines js
-Objekt zurück. Also, es gibt keine% Co_de%,% Co_de%,% Co_de% oder andere "Mongoose Magie" drin. Weitere Informationen finden Sie API-Dokumentation .
Der Punkt von getters
Abfragen besteht darin, Ihre Objekte so schnell wie möglich zurückzugeben. Wenn Sie setters
benötigen, verwenden Sie gewöhnliche Mongoose-Abfragen.
Wie bei der Aggregation ist es 100% virtuals
Feature und Mongoose kann es nicht kontrollieren. Wenn Sie also lean
von Mongoose aufrufen, funktioniert es genauso wie virtuals
in MongoDB
console. aggregate
kann nicht mit virtuellen Systemen arbeiten, da solche Felder in Ihrer Datenbank nicht vorhanden sind. Mongoose kann Ihre Aggregationsabfrage nicht einmal nach Ihrem Schema (wie bei aggregate
arguments) darstellen, da die Aggregation die Form des Dokuments in jedem Schritt ändert. Siehe Mongoose-API-Dokumente und MongoDB Docs für weitere Informationen.
Tags und Links mongoose