Ich bin meine App auf Node 8.4.0 MongoDB 3.4 laufen und ich kann nicht Mungo Bevölkerung zu arbeiten.NodeJS - Mongoose Population Problem
Ich habe zwei Modelle:
var mongoose = require('mongoose');
var Carrier = require('./Carrier.js');
var ValuationFormSchema = new mongoose.Schema({
assignmentnumber: {
type: Number,
default: Number()
},
assignmentpartnumber: {
type: Number,
default: Number()
},
currency: {
type: String,
default: String()
},
email: {
type: String,
default: String()
},
iagree: {
type: Boolean,
default: Boolean()
},
totalValue: {
type: Number,
default: Number()
},
carrier: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Carrier'
}],
createdAt: {
type: Date,
default: Date.now
},
uuid: {
type: String,
default: String()
},
submitted: {
type: Boolean,
default: false
},
send: {
type: Boolean,
default: false
},
template: String,
surveyvolume: Object,
agreement: Object
});
module.exports = mongoose.model('ValForm', ValuationFormSchema);
var mongoose = require('mongoose');
var Item = require('./Item.js');
var CarrierSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
items: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Item'
}],
createdAt: {
type: Date,
default: Date.now
}
});
module.exports = mongoose.model('Carrier', CarrierSchema);
und das ist mein API
app.post('/api/valuationform/populate', function(req, res) {
var email = req.body.email;
ValForm.find({'email' : email},{'submitted' : false})
.populate('Carrier')
.exec(function(error, docs) {
if (!error) {
console.log(JSON.stringify(docs));
res.json(docs);
} else {
res.send('{ error: ' + error + ' }');
}
});
})
Statt die Trägerobjekte immer erhalte ich die IDs der Objekte. Es gibt mehrere Träger pro Valforms.
Das Ergebnis sieht wie folgt aus:
{
"_id": "58d24ff9c195a72784108d85",
"assignmentid": 123441,
"__v": 0,
"send": false,
"uuid": "044da37c-8976-4f80-b103-d07c43a97af2",
"createdAt": "2017-03-22T10:20:41.260Z",
"carrier": [
"58d24ff9c195a72784108d86",
"58d24ff9c195a72784108d8d"
],
"totalValue": 40000,
"iagree": false,
"email": "[email protected]",
"currency": "SEK",
"assignmentpartnumber": 0,
"assignmentnumber": 0
}
ich die Träger als Objekte zurückgegeben werden wollen nicht OBJECTID Jahren.
Was mache ich hier falsch?
Soweit ich weiß, müssen Sie darauf selbst aufpassen. Sie müssen es manuell in Ihrer Exec-Funktion extrahieren. –
Sorry für dumme Frage, aber diese Träger Objekte existieren mit ID 58d24ff9c195a72784108d86 und 58d24ff9c195a72784108d8d? – Helen