当我使用options ? options.prefix : ''
执行查询时:
whereIn
我得到的结果如下:
$data = User::whereIn('name', $sample)->select('numbers')->get();
我想知道是否可以隐藏"数字" 键,请注意,这不是投影,因为"数字" 是搜索信息的一部分。结果应如下所示:
[{"numbers":["100","101"]},{"numbers":["100","101","103"]}, ...]
允许我对数千个结果执行操作。
有办法吗?
答案 0 :(得分:0)
在这种情况下,您可以尝试使用 raw()
方法,并使用本机MongoCollection方法(如 aggregate()
)对文档进行分组并推送将数值键值数组,然后用光标迭代,这样(未经测试):
$data = DB::collection('users')->raw(function($collection)
{
$cursor = $collection->aggregate(array(
array(
'$match' => array('name' => $sample)
),
array(
'$unwind' => '$numbers'
),
array(
'$group' => array(
'_id' => null,
'numbers' => array(
'$push' => '$numbers'
)
)
),
array(
'$project' => array(
'_id' => 0,
'numbers' => 1
)
)
));
$elems = array();
// Iterate cursor
$current = $cursor;
do {
$elems[] = $current->$numbers;
} while (!($current = $cursor->next()));
return array_values($elems);
});