2016-10-16 14 views
0

Keystoneプロジェクトでは、特定の名前の著者(この場合は「管理者」)と一致するすべての投稿を表示するページを作成しようとしています。KeystoneJSより具体的なフィルタリング

view.on('init', function (next) { 

    var q = keystone.list('View').paginate({ 
     page: req.query.page || 1, 
     perPage: 5, 
     maxPages: 10, 
     filters: { 
      state: 'published', 
      author.name.first: 'Admin' 
     }, 
    }) 
     .sort('+publishedDate') 
     .populate('author'); 

    q.exec(function (err, results) { 

    // Use results here 

    } 
} 

私はフィルタに以下の行を追加しようとしている:

author.name.first: 'Admin' 
author[name][first]: 'Admin' 
author: { 
    name: { 
    first: 'Admin' 
    } 
} 

しかし、どれも動作するようには思えない、私はそれを単に「著者」より、それ以上を指定するかどうかはわかりません。何か案は?

答えて

0

私は、これは古い記事で実現するが、ここであなたが行く:

を私はあなたの問題がauthorが実際に名前のフィールドタイプではなく、単純な関係であるということだと思います。このフィールドに値を入力する必要があります。その後、フィルターが適用されます。あなたが探しているものを達成するのに役立つthis投稿を読んでください。

追加のコメントとして、投稿者によってフィルタリングしている場合は、author.name.firstではなくauthor.name.fullを使用する方がよい場合があります。

はまた、(filtersは何をするつもりされているもの)マングースクエリのドキュメントhereに同様の例があることに注意してください、あなたはまた、'author.name.full'だけでなくauthor.name.fullを行う必要があるかもしれませんのでname.lastは、単一引用符の内側にあります。

関連する問題