首页 > 解决方案 > 有没有办法以雄辩的方式传递条件,如果密钥存在,那么不要从集合中发送对象(在 mongodb 中)?

问题描述

我正在使用 jenssegers/laravel-mongodb,我有一个集合段,我不希望这些对象由具有名为“unrooted”的键的 eloquent 发送,即传递一个条件来检查集合中是否设置了“unrooted”键,所以我想要

$condition[' ? '] = false;  // $condition unrooted exists is false.
$segments = Segment::where($condition)->get();

我知道它可以像让所有对象都通过条件一样完成,然后

foreach($segments as $key => $segment){
    if(property_exists($segment, 'unrooted')){
        unset($segments[$key]);    
    }
} 
dd(array_values($segments->toArray());

但如果收藏量很大,这对我来说效率不高。谢谢你的帮助。

标签: laravelmongodbeloquent

解决方案


这很简单,只是使用了 mongodb 文档,在这里发布以供将来参考。

$condition['$exists'] = false; 

$exists可以解决问题。


推荐阅读