У меня есть простое приложение с Nodejs
и Mongoose
, и я пытаюсь получить вложенные результаты, но оно не работает.
У меня есть 2 модели в 2 файлах:
Я использую эти версии:
mongodb: "version": "3.1.3"
mongoose: "version": "5.2.9"
users.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// create user Schema & model
const userSchema = new Schema({
IdUser:{
type: Number
},
Email:{
type: String,
required: [true, 'Email field is required']
},
Nick:{
type: String,
required: [true, 'Nick field is required']
},
Password:{
type: String,
required: [true, 'Password field is required']
},
Admin:{
type: Boolean,
default: false
},
Results:{
type: Schema.Types.ObjectId,
ref: 'result'
}
});
const user = mongoose.model('user', userSchema);
module.exports = user;
results.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// create results Schema & model
const resultSchema = new Schema({
IdEvent:{
type: Number
},
User: {
type: Schema.Types.ObjectId,
ref: 'user'
},
Result: {
type: Number
}
});
const result = mongoose.model('result', resultSchema);
module.exports = result;
После этого я использую следующий запрос:
//RESULTS
//http://localhost/getEvents?IdEvent=1
router.get('/getResults',function(req,res,next){
Result.find({IdEvent:req.query.IdEvent}).populate('User')
.then(function(result){
res.send(result);
});
});
На моем почтальоне я получаю такой результат:
[
{
"_id": "5b83cd2913769f1e267191cd",
"IdEvent": 2,
"IdUser": 1,
"Result": 1
},
{
"_id": "5b83cd3013769f1e26719215",
"IdEvent": 2,
"IdUser": 2,
"Result": 2
}
]
Хотелось бы получить такой результат:
[
{
"_id": "5b83cd2913769f1e267191cd",
"IdEvent": 2,
"User": {1, "email@email.com","Nick"}
"Result": 1
},
{
"_id": "5b83cd3013769f1e26719215",
"IdEvent": 2,
"User": {2, "email@email.com","Nick"}
"Result": 2
}
]
Что не так?
Заранее спасибо!