在 MongoDBfind()中,产生了两个字段,另外一个字段用于排序。代码示例:
$limit = 10;
$skip = ( $page - 1 ) * $limit;
$query = [
'conditions' => [ 'channel_id' => $channel_id, 'author' => $author_id ],
'sort' => [ 'created_at' => -1 ],
'skip' => $skip,
'limit' => $limit
];
$publications = Pull::find( $query );
对于选择的字段,我这样做了(在 MongoDB 控制台中):
createIndex( { 'channel_id' : 1, 'author_id' : 1 } )
但是created_at发生排序的字段呢?为它单独创建一个索引,或者也将它推到一个复合索引中?谢谢你。
字段的顺序应该是:
到综合索引结束。这里更详细地考虑了这个问题https://habrahabr.ru/post/147053/