我在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语句只能返回指定的列,而不是任何其他列!
答案 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());