0

、、、の3 つのコレクションCustomersContactsあるとします。Messages

Customers {_id, name, address, city, state, zip}
Contacts {_id, customer_id, first_name, last_name, email, phone}
Messages {_id, contact_id, subject, body}

さて、これらのコレクションのそれぞれにいくつかの属性とメソッドをセットアップして、関連するコレクションを変換を介してドキュメントのインスタンスで直接呼び出すことができる関数として取り込み、{{#each contact}}{{customer.name}}{{/each}}ここのようにテンプレートでデイジー チェーンを実行できるようにします。私がそれらをどのように変換しているかです。

Contact.prototype = {
    constructor: Contact,

    customer: function () {
        return Customers.findOne({_id: this.customer_id});
    },

    fullName: function () {
        return this.first_name + " " + this.last_name;
    }, 

    neverContacted: function () {
        if (!Messages.findOne({contact_id: this._id})) {
            return true;
        } else {
            return false;
        };
    }
};

Customer.prototype = {
    constructor: Customer,

    owner: function () {
        user = Meteor.users.findOne({_id: this.user_id});
        return user.username || user.emails[0].address;
    }, 

    contacts: function () {
        contacts = Contacts.find({customer_id: this._id}).fetch();
        return contacts;
    }
};

私の質問は、顧客コレクションの仮想属性に基づいて、顧客コレクションに対してクエリを実行する方法です。

お気に入りcustomers.find().contacts().neverContacted()

デイジー チェーン接続のアクティブ レコード スタイルのようなものですか?;

4

2 に答える 2