2017-09-12 18 views
0

は、私は私のmoongose + MongoDBの中でこの機能を持っている:のMongoDB集約参照レコードの制限

Blog.aggregate([{ 
       "$match": {"user_id": userblog}}, 
       { 
       "$lookup": { 
        from: "comments", // collection name in db 
        localField: "_id", 
        foreignField: "blogid", 
        as: "comments" 
       },     
      }]).exec(function(err, docs) { 


      }); 

これは完璧に動作しますが、どのように私はコメントを制限し、最後の10件のレコードをretriveするために何ができますか?どうもありがとう。マルコ。

+0

を上限に追加マニュアル/参照/演算子/集約/スライス/) '$ lookup'は配列を返すので、それはあなたが「制限する」ことです。どこかで重複していなければならないが、今は検索が失敗している。もう1つのピーナッツが実際にその質問を読まずにただ盲目的に '$ limit'を投稿する前に何かがあるはずです。 –

答えて

0

だけ集約に制限を追加します。

Blog.aggregate([{ 
       "$match": {"user_id": userblog}}, 
       { 
       "$lookup": { 
        from: "comments", // collection name in db 
        localField: "_id", 
        foreignField: "blogid", 
        as: "comments" 
       }, 
       { 
        "$limit" : 10 
       }     
      }]).exec(function(err, docs) { 


      }); 
+0

質問は「コメントコレクションの最後の10」に質問しています。なぜなら、質問のテキストには実際にその内容が記載されているからです。 –

+0

申し訳ありません。本当ですか?コメント集の最後の10! –

+0

mongooseでenのエラーが発生しました}、 { "$ limit":10 } –

1

は、あなたが(https://docs.mongodb.com/ [ `$のslice`]を探しているあなたのコードに

Blog.aggregate([{ 
     "$match": {"user_id": userblog}}, 
     { 
     "$lookup": { 
      from: "comments", // collection name in db 
      localField: "_id", 
      foreignField: "blogid", 
      as: "comments" 
     } 
    }]).limit(10).exec(function(err, docs) { 

    }); 
+0

place lean()。exec(function(err、doc))すべてのゲッターとセッターが削除されます普通の文書 –

+0

はマングースでは機能しません! –

+0

**私のコメントを編集しましたので、** – Vignesh