2016-07-17 8 views
1

データベースからランダムオブジェクトを取得しようとしていますが、ウェブサイトに表示されています。私が下に列挙した玉の部分をコメントアウトすると、何も壊れません。私はそれをアンコメントすると私が取得:玉でmongoDB集計結果を出力

TypeError: C:\Users\Malachi\Sandbox\CEC\myapp\views\layout.jade:63

61|   .office-devide 
    62|   h2 Patient Reviews 
>> 63|    each user in userreviews 
    64|    ul 
    65|     li= user.reviewfirstname 
    66|     li= user.reviewlastname 

Cannot read property 'length' of undefined

私は私が間違っているのかわからないんだけど。私はここでいくつかの同様の問題を見てきましたが、私が間違っていることを理解できないようです。どんな助けもありがとう。追加情報が必要な場合はお知らせください。ありがとう!

エクスプレスコード

router.get('/', function(req, res, next) { 
    var db = req.db; 
    var collection = db.get('userreviews'); 
    collection.aggregate([ {sample: { size: 3} } ] ,function(e,docs){ 
    res.render('index', { 
    title: 'Reviews', 
    "userreviews" : docs 
    }); 
    }); 
}); 

ジェイドコード

h2 Patient Reviews 
    each user in userreviews 
    ul 
     li= user.reviewfirstname 
     li= user.reviewlastname 
     li= user.reviewsite 
     li= user.reviewdate 
     li= user.reviewtext 

答えて

1

あなたはを使用する必要があります。またそう

collection.aggregate([ {$sample: { size: 3} }]).toArray(function(e,docs) { 
    res.render('index', { 
     title: 'Reviews', 
     userreviews : docs 
    }); 
}); 

のようなtoArrayでそれを試してみてください、つまりステージ運営者に '$'を追加します。

+0

これは機能しませんでした。 Jadeはまだ "Undefinedのプロパティ 'length'を読み込めません。 – mddanielewicz

+0

また、各ブロックのjadeをコメントアウトすると、 "collection.aggregate(...)。toArrayは関数ではありません" – mddanielewicz

+0

パイプラインにエラーがあります - 私の更新を参照してください – DAXaholic