laravel jenssegers/laravel-mongodb slice 操作怎么写
laravel jenssegers/laravel-mongodb slice 操作怎么写
写了一个 comments字段 是 数组形式 里面的数据都是push进去的 现在有需求 需要分页取
或者取列表的时候 只去 comments里的3条数据 应该怎么写
试了很多方法都写不出来 求大牛 解答
Collection::where("field", "value")->slice("arrayField", 3)->get();
这种方式会直接报 slice方法不存在
参考
$query = array(array('_id' => $id), array(
'_comments' => array(
'$slice' => [0, 3]
)));
$post = Post::whereRaw($query)->get();
这种写法 也查不出来 数据直接为空.
写了一个 comments字段 是 数组形式 里面的数据都是push进去的 现在有需求 需要分页取
或者取列表的时候 只去 comments里的3条数据 应该怎么写
试了很多方法都写不出来 求大牛 解答
Collection::where("field", "value")->slice("arrayField", 3)->get();
这种方式会直接报 slice方法不存在
参考
$query = array(array('_id' => $id), array(
'_comments' => array(
'$slice' => [0, 3]
)));
$post = Post::whereRaw($query)->get();
这种写法 也查不出来 数据直接为空.
4 个回复
安正超
赞同来自: FiveSay 、宋小北
与Eloquent用法一样哇:
JohnLui
赞同来自: FiveSay
MongoDB 作为 NoSQL 数据库,是没有 MySQL 这样严谨的表间关系和行间关系的。一个 collection 相当于一张表,但是表里面的每一行的数据都是独立的没有顺序的。如果想获取最近的3篇,可以按照 time 获取,如果还需要按照其他的排序貌似就得遍历了。当然遍历也不用担心,可以通过狂堆硬件,狂加索引解决。
之前我做过的项目,用户表这种严格自增的地方是用 MySQL 解决的 %>_<%
FiveSay - 成武
赞同来自:
@安正超 @宋小北 @00幽靈00 @JohnLui @cooper @王赛
do_while
赞同来自: