Население не работает в Mongoose

0

У меня проблемы с функцией заполнения в Mongoose. Проблема в том, что контактные лица не сортируются, поэтому я получаю их все, независимо от того, какой клуб я использую.

models.js

// Contactperson Schema
var contactPersonSchema = new Schema({
    club: {
        type: Schema.ObjectId,
        ref: 'Club'
    },
    name: String,
    phoneNumber: String,
    email: String,
    position: String,
    comment: String
});


// Club Schema
var clubSchema = new Schema({
    name: String,
    postalPlace: String,
    comment: String,
    status: String
});

routes.js

router.use('/api/clubs', clubRoute);

clubroutes.js

router.route('/:club_id/contactpersons')
    .post(function (req, res) {
        var contactperson = new Contactperson();
        contactperson.club = req.body.club;
        contactperson.name = req.body.name;
        contactperson.phoneNumber = req.body.phoneNumber;
        contactperson.email = req.body.email;
        contactperson.position = req.body.position;
        contactperson.comment = req.body.comment;

        contactperson.save(function (err) {
            if (err) {
                res.send(err);
            }

            res.json({message: 'Contactperson created!'});
        });
    })
    .get(function (req, res) {
        console.log(req);
        Contactperson.find({}).populate('club').exec(function (err, contactpersons) {

                if (err) {
                    res.send(err);
                }

                res.json(contactpersons);
            });

    });

clubDetail.js в Angular (я использую Restangular)

$scope.club = clubService.one($routeParams.id).get().$object;

$scope.contactpersons = clubService.one($routeParams.id).all('contactpersons').getList().$object;
  • 0
    Проверьте, является ли название вашей коллекции рефлов именно «Club» в вашей базе данных.
  • 0
    module.exports = mongoose.model ('Club', clubSchema); Я попытался изменить его как на «клубы», так и на «клуб», но затем я получаю сообщение об ошибке: MissingSchemaError: Схема не была зарегистрирована для модели «клуб»
Показать ещё 2 комментария
Теги:
mongoose
restangular

1 ответ

0

Наконец я узнал ответ. Проблема в том, что я не определял клуб. Вот правильный метод поиска:

Contactperson.find({club: req.params.club_id}).populate('club'). Exec (function (err, contactpersons) {

  • 0
    Рад, что у вас все получилось, но какое отношение это изменение имеет к тому, чтобы заставить население работать? Разве это не отфильтровывает возвращенные документы только для тех, у кого есть соответствующий club ?
  • 0
    Да, это было то, что я пытался сделать. Разве это не то, что вы использовали бы для населения?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню