1

問題の説明:

と の 2 つのコレクションがvideosありspecsます。videosコレクションには、specに対応すると呼ばれるキーがありますspecs id。どちらのコレクションも空ではありません。

私のテンプレート ヘルパー:

  Template.List.helpers({
    videos: function(){
      var vids = Videos.find({ online: false}).fetch();
      return vids.map(function(value){
        console.log("id: " + value.spec);
        console.log(Specs.find({ id: value.spec }).fetch());

        //Issue here
        value.specName = Specs.find({ id: value.spec }).fetch()[0].name;
        return value;
      });
    }
  });

テンプレート ヘルパーでわかるように、ビデオ配列をループして配列に追加specNameします。

主な問題は、次の特定の行から発生します。

value.specName = Specs.find({ id: value.spec }).fetch()[0].name;

より具体的には、この行:毎回Specs.find({ id: value.spec }).fetch() 返されます。null

私が試したこと:

当然のことながら、私の最初の考えは、何value.specが返されるかを確認することです。そして、それは正しい1から15(含まれる)の間のintを返します。もしそうならvalue.specfind()なぜ何も返さないのですか?

私はそれをハードに設定することに決め、これを試しました:

Specs.find({ id: 2}).fetch()

そして、これはうまくいきました。value.spec複数の場合に2が返されるため、これは奇妙です...

私も念のために試してみましたが、それもうまくいきませintParse(value.spec)んでした。

質問

正しく設定されていて、ハードコードされた番号が機能することを知っているのに、なぜSpecs.find({ id: value.spec }).fetch()null を返すのですか?value.spec

要求された json データ: (流星 mongo から)

仕様:

{ "_id" : "XKXHtQuiFsAew3dDy", "id" : 1, "name" : "Endocrine surgery" }
{ "_id" : "68jFidAMXTXpQtQye", "id" : 2, "name" : "General and digestive" }
{ "_id" : "GZSXToRXMfJgnH3CY", "id" : 3, "name" : "Pediatric surgery" }
{ "_id" : "T2mBz2gsXEqQaybmq", "id" : 4, "name" : "Thoracic surgery" }
{ "_id" : "hnuQzZiPKvYYDZhc8", "id" : 5, "name" : "Equipment" }
{ "_id" : "byE3A6HchvfhKdmR8", "id" : 6, "name" : "Gynecology" }
{ "_id" : "u5rrPB7asGW3NC6B2", "id" : 7, "name" : "Urology" }
{ "_id" : "umxKvR66oEx5dRppf", "id" : 8, "name" : "Cardiovascular surgery" }
{ "_id" : "bPcBTZn3t5ubRRcrQ", "id" : 9, "name" : "Endoscopic surgery" }
{ "_id" : "yNyAqQPoreNtdRZ34", "id" : 10, "name" : "NOTES" }
{ "_id" : "KG794eakRaztEqehG", "id" : 11, "name" : "Robotic surgery" }
{ "_id" : "QBrtvTg4GT7Tf7cAJ", "id" : 12, "name" : "Skull base surgery" }
{ "_id" : "HEhq6oBjuuMnrxE5a", "id" : 13, "name" : "Arthroscopy and upper limb surgery" }
{ "_id" : "xwpgHqZpBQP7WAnd5", "id" : 14, "name" : "Single port surgery" }
{ "_id" : "K4BgFupwNdDGD3449", "id" : 15, "name" : "Telemicrosurgery" }

ビデオ:

{ "_id" : "L5Qi7YRRhn6Sfcjk8", "id" : "vd01en1065e", "title" : "Right inguinal hernia: open plug technique", "authors" : [ "E Pelissier" ], "date_published" : "2004-09-27", "abstract" : "", "tags" : [ "" ], "spec" : 2, "private" : true, "online" : false }
{ "_id" : "M8cuLW6KNCqKeP9vF", "id" : "vd01en1074e", "title" : "Laparoscopic splenectomy, posterior approach", "authors" : [ "D Mutter", " F Rubino" ], "date_published" : "2004-09-27", "abstract" : "", "tags" : [ "" ], "spec" : 2, "private" : true, "online" : false }
{ "_id" : "Ptzrxw8GifeMvQk9k", "id" : "vd01en1090e", "title" : "Intussusception of the intestine in the newborn", "authors" : [ "F Becmeur", " D Christmann", " I Kauffmann" ], "date_published" : "2004-09-27", "abstract" : "", "tags" : [ "" ], "spec" : 3, "private" : true, "online" : false }
{ "_id" : "oHWcX3vCBHuZQM9hR", "id" : "vd01en1103e_2", "title" : "Appendicular peritonitis: laparoscopic conversion", "authors" : [ "B Navez" ], "date_published" : "2001-11-05", "abstract" : "", "tags" : [ "" ], "spec" : 2, "private" : true, "online" : false }
{ "_id" : "6uzmxYxhd5DDuS2gG", "id" : "vd01en1108e", "title" : "Diaphragmatic hernias", "authors" : [ "F Becmeur" ], "date_published" : "2001-11-28", "abstract" : "", "tags" : [ "" ], "spec" : 3, "private" : true, "online" : false }
{ "_id" : "yHqruiQYeeQ9SDHpH", "id" : "vd01en1112e", "title" : "Laparoscopic excision of the cystic stump", "authors" : [ "J Leroy" ], "date_published" : "2004-09-27", "abstract" : "", "tags" : [ "" ], "spec" : 2, "private" : true, "online" : false}
{ "_id" : "fmjtk5WAEKitMxyGj", "id" : "vd01en1114e", "title" : "Laparoscopic gastric banding in a patient with a BMI of 40", "authors" : [ "JM Zimmermann", " D Fölscher" ], "date_published" : "2004-09-27", "abstract" : "", "tags" : [ "" ], "spec" : 2, "private" : true, "online" : false}

私はこの問題で数時間立ち往生しています。これは単純な問題だと思うので、SOに投稿したくありませんでした。しかし、それは気が遠くなるようなものです。

4

2 に答える 2