Вложенная схема мангуста не работает - PullRequest
0 голосов
/ 28 августа 2018

У меня есть простое приложение с 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
    }
]

Что не так?

Заранее спасибо!

1 Ответ

0 голосов
/ 28 августа 2018

Здесь, если предоставить вам несколько ссылок, обратитесь к ним и поймите функцию заполнения в mongoose и как использовать вложенный запрос ...

https://mongoosejs.com/docs/populate.html

https://medium.com/@nicknauert/mongooses-model-populate-b844ae6d1ee7

...