te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>javascript - meteor cannot observe queries with skip or limit - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - meteor cannot observe queries with skip or limit - Stack Overflow

programmeradmin3浏览0评论

I am probably missing something quite obvious or missing something in the documentation. I searched and did not find similar question. posting it.

Both of these

return Items.find({},{sort: {time: -1}, limit: 10});

or

return Items.find({},{sort: {time: -1}).limit(10);

result in meteor cannot observe queries with skip or limit

I am probably missing something quite obvious or missing something in the documentation. I searched and did not find similar question. posting it.

Both of these

return Items.find({},{sort: {time: -1}, limit: 10});

or

return Items.find({},{sort: {time: -1}).limit(10);

result in meteor cannot observe queries with skip or limit

Share Improve this question edited Apr 14, 2012 at 21:29 richsage 27.1k8 gold badges59 silver badges65 bronze badges asked Apr 14, 2012 at 21:18 Steeve CannonSteeve Cannon 3,6823 gold badges37 silver badges49 bronze badges 1
  • Issue has been registered. Check out this github issue – meawoppl Commented Dec 11, 2012 at 18:30
Add a ment  | 

1 Answer 1

Reset to default 16

UPDATE: This is longer an issue. Beginning with Meteor 0.5.3, you can observe queries with skip and limit options.

Unfortunately, this is true: the mimimongo package doesn't currently support calling observe on cursors that used the skip or limit options. There's no good reason for this; it's just not implemented.

If you're calling this query inside a template helper, there's an easy workaround:

Template.name.items = function () {
  // fetch array of all the items
  var items = Items.find({}, {sort: {time: -1}}).fetch();

  // return only the first 10 items to the template
  return items.slice(0,10);
};

The downside of the workaround is efficiency. If your helper returns a cursor (just returning the value of Items.find without calling fetch, then the template system is smart enough not to recalculate the whole template when just one item changes, or if a new item is inserted.

On the other hand, calling fetch in the helper registers a dependency on the entire query result, so the whole template gets recalculated any time any object in the query changes.

There's no other difference. The template will put the same thing on the screen and it will preserve the contents of form elements when it has to redraw itself.

发布评论

评论列表(0)

  1. 暂无评论