0
現在、Meteor.users.find()のすべてのユーザーを{{#each user}}のWebページに表示しています。しかし、私は郵便番号に基づいて検索を制限したい。MeteorとMongoDBを使用してIDの配列に基づいてユーザーを検索します。
- ユーザーが郵便番号を入力します。
- 郵便番号の都市名を検索します。
- その都市内のすべての郵便番号を検索してください。
- その都市のすべての郵便番号を持つすべてのユーザーを検索します。
ページ上のすべてのユーザーをリストします。
// Step 1: User input (OK) input_zip = '1234'; // Step 2: Get city name for this ZIP (OK) var zip_place = Locations.findOne({ zipCode: input_zip })['place']; // Step 3: Get all zip codes in that city (OK) var zip_codes = Locations.find({ place: zip_place }).fetch(); // Step 4 (I'm aware this syntax is totally wrong, but you get the idea) var zip_users = Meteor.users.find({ profile.zipcode: zip_codes }).fetch(); // Step 5: List users on page with zip codes in that array. {{#each user in zip_users}} <p>bla bla</p> {{/each}}
配列の値を持つユーザーを検索する最も効果的な方法は何ですか? 完全なコード例をお待ちしております。ありがとうございました。
に行きます。これは、myArray = ['1234'、 '5678']のように手動で配列を作成すると動作します。 var zip_codes = Locations.find({place:zip_place}、{fields:{'zipCode':1}})fetch();郵便番号の配列ではなく、オブジェクトの配列を作成します。 文字列としてプレーンな郵便番号の配列を作成するにはどうすればよいですか? fetchがfindOneと同じように動作しない前に、[zipCodes]を最後に指定してください。ありがとうございました。 – user3323307
.map関数を使って修正しました。 – user3323307