У меня есть следующие коллекции:Как найти записи в коллекции mongodb на основе результатов поиска в другой коллекции?
RideOffers
: коллекция езды предлагает пользователям размещать на сайте, и BidsOnOffers
: сборник предложений по вышеперечисленным предложений езды. Каждая заявка связана только с одним предложением о поездке
Я хотел бы отправить пользователю список предложений о поездках, которые она опубликовала, но не все ставки для всех поездок: пользователь должен иметь возможность видеть только предложения для ее всадника предлагают, а не какие-либо заявки на поездки других людей. Любые идеи о том, как я могу это сделать? Вот что я придумал до сих пор:
Meteor.publish('RideOffers', function() {
return RideOffers.find();
});
Meteor.publish('BidsOnMyOffers', function() {
var MyRideOffers = RideOffers.find({userId: this.userId, active: true});
return BidsOnOffers.find({ offerId: {$in : [MyRideOffers._id]}, active: true});
});
Это, очевидно, не работает, проблемная часть является {$in : [MyRideOffers._id]}
, я полагаю. Я пытаюсь получить массив значений _id от MyRideOffers
? Или мой подход совершенно неправильный?
Чтобы быть еще более эффективным, использование '{полей: {_ID: 1}}' в качестве второго аргумента и вам даже не придется «срывать». –
Не думал об этом варианте, который лучше, поэтому я отредактировал свой ответ, nice =) – saimeunt
На самом деле, отредактированная версия этого ответа сработала для меня (тот, который использует '_.pluck'. (можно, я просто пропустил что-то простое). –