Jenssegers / select('列')返回的列数多于select中指定的列数

时间:2016-07-14 16:58:23

标签: mongodb-query laravel-5.2 jenssegers-mongodb

我在jenssegers查询构建器中遇到以下问题(我是新用户):

print_r(DB::table($tablename)->where('_id',$_id)->select($table_structure_record['field'])->get());
尽管select语句中只指定了一列,但

返回了多个列:

Array ( [0] => Array ( [_id] => MongoDB\BSON\ObjectID Object ( [oid] => 5780b81d93f7fb0e00d0f252 ) [collection] => structure ) )

我的预期结果只是([collection] =>结构),我不明白为什么我也得到" [_ id] => MongoDB \ BSON \ ObjectID对象([oid] => 5780b81d93f7fb0e00d0f252)"

有人能帮助我吗?尽管进行了很多搜索,但似乎select语句只能返回指定的列,而不是任何其他列!

1 个答案:

答案 0 :(得分:1)

MongoDb总是返回_id字段,除非您在发出请求时专门设置它(MongoDb Limit Fields to Return from Query Documentation)。

您可以尝试使用项目。然后它会是这样的:

DB::table($tablename)->where('_id',$_id)->project([$table_structure_record['field'] => 1, "_id" => 0])->get());