Агрегация двух коллекций Mongodb

#node.js #mongodb

#node.js #mongodb

Вопрос:

схема игроков:

 var mongoose = require('mongoose'),Schema = mongoose.Schema;  
var playerSchema = new mongoose.Schema({  
  name: String,
  password: String,
  country: [{ type: Schema.Types.ObjectId, ref: 'countries' }]
});
mongoose.model('players', playerSchema);
  

схема стран:

 var mongoose = require('mongoose'),Schema = mongoose.Schema;  
var countrySchema = Schema({  
  name: String,
  isActive: Boolean
});
mongoose.model('countries', countrySchema);
  

И это мой запрос поиска node js:

 router.route('/')
    .get(function(req, res, next) {
        mongoose.model('players').find().populate('country').exec(function (err, players) {
            console.log(players);
              if (err) {
                  return console.error(err);
              } else {
                  res.format({
                      html: function(){
                        res.render('players/index', {
                              title: 'Players',
                              "players" : players
                          });
                    },
                    json: function(){
                        res.json(players);
                    }
                });
              }
        });
    });
  

Я хочу, чтобы результат был установлен с идентификатором страны и именем. Но у меня страна равна нулю.Что делать ?

Комментарии:

1. Проверяли ли вы данные в своих коллекциях, если в players коллекции есть ссылки на countries коллекцию?

2. да. данные в порядке. Есть ли какой-либо запрос mongo для поиска в оболочке mongo?

3. Вы могли бы использовать $lookup

4. Я новичок в mongo. так что, пожалуйста, пришлите мне запрос?

5. Если вы полностью прочтете документацию , вы увидите, что есть четкие примеры того, как запрашивать две коллекции.