jenssegers / laravel-mongodb的where()和raw()对同一查询产生不同的结果

时间:2019-03-21 05:59:58

标签: php mongodb laravel

我在我的一个项目中使用jessengers/laravel-mongodb。我想使用原始mongodb查询而不是jessengers库中的其他函数。当我使用raw()编写一个简单查询以从数据库中获取两个字段值时,它将返回完整的文档。因此,我尝试使用where()函数,光标仅显示请求的字段。

恐怕同一个查询为什么显示两个不同的结果...

以下是带有where()函数的查询:

$articleDataArray = Article::where('art_xml_data.article.article_id', '=', $articleId)
  ->get(['art_status', 'art_file_path']);

此查询返回仅具有art_status和art_file_path值的游标。 (根据Neil Lunn的建议,我已对问题进行了编辑,以在此处包括结果。) 结果: enter image description here 但是,以下使用raw()编写的查询将返回匹配文档中的完整字段。

$articleDataArray = Article::raw()->find(
  array ('art_xml_data.article.article_id' => $articleId), 
  array ('art_status' => 1, 'art_file_path' => 1)
  )->toArray();

结果: enter image description here

0 个答案:

没有答案