私はMongo Collectionsを持っているMeteorプロジェクトに取り組んでおり、関係やMeteor collectionヘルパーパッケージの取り扱い方法はわかりません。Mongodb組み込みオブジェクトとMeteorコレクションヘルパー
今まで私たちは埋め込み文書を保管していました。たとえば、私たちはインターンシップコレクションを持っており、このインターンシップを作成したユーザー(所有者)とすべてのインターンシップに埋め込み文書があります。
私たちはMeteor collectionヘルパーパッケージ(https://github.com/dburles/meteor-collection-helpers)を使用することに決めましたので、必要な値を返すメソッドを追加することができます。問題は埋め込まれたドキュメントが与えられたメソッドを失ったことです。
インターンシップでは、関連するコレクションIDを保存するだけです。もし私たちがStreet、Postcode、Cityの3つのプロパティで分けられたInternship.addressを取得したいのであれば、 'internship.getAddress () '。別の例は、あなたがアプリケーション文書を扱っている場合に、インターンシップの住所を得ることです。 Application.getInternship()。getAddress()メソッドを呼び出すことができます。これにより、埋め込みドキュメントを保存する必要はありません。
異なるフィールドを使用してMongoクエリを実行する必要がある場合、問題が発生します。私たちはこれに対処する方法を疑問に思うよう
Application.search = (query) => {
Application.find({
'applicant._id': Meteor.userId(),
$or: [
{"internship.title": { $regex: query, $options: 'i' }},
{"internship.description": {$regex: query, $options: 'i' }},
],
}, {sort: { updatedAt: -1 },
}).fetch();
}
Internship.titleとdescripionはもはやインターンシップ埋め込まれた文書で保存されていない:私たちは、与えられた文字列に一致するすべての文書を返し、非常に単純な検索機能を持っています。