2016-09-27 18 views
0

私は約10,000アイテムのデータベースを持っています。検索について私は10のIDの配列を取得します。例えば

Meteor.publish("artikel", function() { 
    return Artikel.find({}, {limit: 10}); 
}); 

クライアント::

Meteor.subscribe('artikel'); 

getProduct("pizza") --> [ "rjxyykii7gx9MQYZb", "JCh45MFwQHEHXRG3s", "FLRkf5jQDMLef4wzL", "76BbqHMumrpQ8u9h6", "4Mfr4EbrmiexA6tgG", "QT4mqbK59BpsR8nPj", "HnNEBaBPf3kGJeg47", "fjJJtZbYFXF9RBCep", "LrBhnTMxgA2mwpYmB", "CXEwwxWDQYgiGKEpG"] 

今私が欲しいが、recourcesを節約するために、10の項目

サーバーの制限を設定しますしかし、今私は頼むことができませんトンリスト:私は私のデータベース・ツールを使用している場合

var cursor = Artikel.find({_id: {$in: idArray}}); 
    cursor.count(); //--> 0 

、私は私が間違って何をやっている、同じ値で、10件の結果

db.artikel.find({_id: { $in: [ "rjxyykii7gx9MQYZb", ... ] } }).limit(10).count() //--> 10 

を取得しますか?ありがとうございました。

+0

()データを保存したい場合はMeteor.publishで制限しますか? – RootHacker

+0

私は、データではなく、リクルートを保存します;-) – laren0815

答えて

1

問題は、10レコードをクライアントに公開していることです。あなたのカウントが0を返す理由は、あなたが公開している10個のレコードがidArray内にある可能性は非常に低いです。あなたは(私もスキップを追加します)あなたの$の中にはそうのように、公開機能になりたい:

クライアント上
// server 
Meteor.publish("artikel", function (idArray, skip) { 
    return Artikel.find({_id: {$in: idArray}}, {limit: 10, skip: skip}); 
}); 

そして:あなたは.find使用している理由

// client 
Meteor.subscribe('artikel', idArray, skip); 

Artikel.find({}).count() // --> 10 
+0

それは魅力のように動作します:-) – laren0815

+0

うれしい! :) – Adam

関連する問題