2017-01-13 14 views
0

私のMeteorアプリケーションでは、限られた数のユーザー(サーバー上の!)を取得しようとしています。これらのユーザーのうち、指定されたフィールドをいくつか受け取るだけです。フィールドの選択とMongoDBクエリ(Meteor)の合計結果の制限

このクエリが期待どおりに機能しないのはなぜですか?

const users = Meteor.users.find(
    { 
    'roles.__global_roles__': {$in: ['myRole']}, 
    $and: query 
    }, 
    {fields: { 
    username: 1, 
    firstName: 1, 
    lastName: 1, 
    update: 1 
    }}, 
    { 
    limit: 2, 
    sort: {'update.any': -1} 
    } 
).fetch(); 

このクエリでは、limitとsortは無視されます。選択されたフィールドのみが受信されます。今

const users = Meteor.users.find(
    { 
    'roles.__global_roles__': {$in: ['myRole']}, 
    $and: query 
    }, 
    { 
    limit: 2, 
    sort: {'update.any': -1} 
    } 
).fetch(); 

制限し、作品をソートしますが、明らかに私はすべてのフィールドを持つ全ユーザーオブジェクトを取得:

は、私は、これを試してみました。

両方を組み合わせるソリューションは何ですか?

おかげ

答えて

1

のfind()はあなたの最初の例では3を提供している、2つのパラメータがあります。

const users = Meteor.users.find(
    { 
    'roles.__global_roles__': {$in: ['myRole']}, 
    $and: query 
    }, 
    {fields: { 
    username: 1, 
    firstName: 1, 
    lastName: 1, 
    update: 1 
    }, 
    limit: 2, 
    sort: {'update.any': -1} 
    } 
).fetch(); 

iow、fields、limit、およびsortは、すべて2番目の引数と同じJSONオブジェクトの一部です。

+1

くそー!私の目を使ってくれてありがとう。 – maze

関連する問題