You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel+MongoDB查询:匹配竞争者数组长度等于总竞争者数

正确的MongoDB查询写法

你当前的查询错误在于直接将数组字段与数值进行匹配,这无法筛选出数组长度等于指定值的文档。要实现需求,需要使用MongoDB的$size运算符来检查数组的长度。

修正后的查询代码:

$get_product = DB::connection('mongodb')
    ->collection('products_' . $get_project_id->id_project)
    ->whereRaw(['matching_competitors' => ['$size' => $total_competitor]])
    ->paginate(6);

说明:

  • $size是MongoDB的原生运算符,专门用于匹配拥有指定元素数量的数组。
  • 使用whereRaw可以直接传入MongoDB的查询条件文档,确保Laravel能正确解析MongoDB特有的运算符。

如果你的Laravel MongoDB包版本支持直接在where方法中传入运算符数组,也可以这样写:

$get_product = DB::connection('mongodb')
    ->collection('products_' . $get_project_id->id_project)
    ->where('matching_competitors', ['$size' => $total_competitor])
    ->paginate(6);

内容的提问来源于stack exchange,提问作者Shibbir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 20:10:36