Mungo Auffüllen funktioniert nicht
Hallo, ich habe dieses Schema(genannt schema.js):
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var RoomSchema = new Schema({
name: { type: String, required: true, index: { unique: true } },
people: { type: Number, required: true },
childrens: {type: Number, required: true},
total: {type: Number, required: true}
});
var Room = mongoose.model('Room', RoomSchema);
var AvSchema = new Schema({
roomId: {type: Schema.Types.ObjectId, ref: 'Room'},
people: { type: Number, required: true },
childrens: {type: Number, required: true},
total: {type: Number, required: true}
});
var Av = mongoose.model('Av', AvSchema);
module.exports = {
Room: Room,
Av: Av
};
in meiner Route-Datei :
module.exports = function(app) {
var model = require('../models/Schema');
app.get('/api/rooms', function(req, res) {
model.Room.find(function(err, rooms) {
if (err)
res.send(err);
res.json(rooms);
});
});
app.get('/api/av', function(req, res) {
model.Av.find().populate('roomId').exec(function(err, av) {
if (err)
res.send(err);
res.json(av);
});
});
};
Ein pic von der db :
GET /api/Zimmer - Antwort:
[{
"_id": "5444d0dd9a31437167eea816",
"name": "Single",
"people": 1,
"childrens": 1,
"total": 4
}, {
"_id": "5444d1009a31437167eea817",
"name": "Double",
"people": 2,
"childrens": 2,
"total": 10
}]
Wenn ich call api/Zimmer sieht gut aus, aber wenn ich call-api/av-bekam ich ein leeres array [] .... Keine Ahnung, was ich falsch mache? Ich sollte erwähnen, dass ich eingefügt haben, die Aufzeichnungen im av-Sammlung für beide roomsID
Vielen Dank im Voraus.
- thakns für diese Frage
Du musst angemeldet sein, um einen Kommentar abzugeben.
Standardmäßig Mungo pluralizes den Modellnamen zu kommen mit den Namen der Sammlung an, so dass Mungo in der
avs
Sammlung stattav
.Können Sie explizit den Namen für die Sammlung ein, indem diese als Dritter parameter an
model
:Da dies ist die beliebtesten Ergebnis für die Abfrage
Ist, werde ich den Grund, es war nicht für mich arbeiten, obwohl es nicht eine direkte Antwort auf diese Frage bereits gelöst, in der Hoffnung es hilft jemand
Das problem für mich war, dass ich angegeben hatte Felder in
select({..}
aber nicht den Bereich den ich versucht hatte, Sie zu füllen.Ähnlich CodyBugstein Antwort, ich werde Entsendung, warum es nicht funktioniert in meinem Fall, auch wenn es nicht der gleiche Fall wie OP.
War ich versucht, zum füllen der "pro" - Bereich von mein schema in
.post('save')
Haken, wie so:Jedoch der 2.
console.log
wurde auch die Protokollierung der ObjectID statt dem doc.Nach kämpfen mit diesem für eine gute Stunde und versuchen verschiedene Ansätze, fand ich heraus, dass alle ich tun musste, war die Verwendung verspricht und Anruf
execPopulate()
so, dass es wieder eine vollwertige Versprechen. Ich verwendetasync/await
aber man könnte.then
zu:Diese Weise, den 2.
console.log
haben melden Sie den gesamten pro-doc als erwartet 🙂Vergessen Sie nicht, fügen Sie die ref-Eigenschaft auf das schema für die Immobilie, die Sie versuchen zu füllen. E. g.
Sehen Mungo Auffüllen