0

jenssegers クエリ ビルダーに次の問題があります (私は新しいユーザーです)。

print_r(DB::table($tablename)->where('_id',$_id)->select($table_structure_record['field'])->get());

selectステートメントで指定されている列は1つだけですが、複数の列が返されます。

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

私の予想される結果は ([collection] => structure) のみになります。「[_id] => MongoDB\BSON\ObjectID Object ( [oid] => 5780b81d93f7fb0e00d0f252 )」も取得する理由がわかりません

誰かが私を助けることができますか?多くの検索にもかかわらず、select ステートメントは指定された列のみを返し、他の列は返さないようです。

4

1 に答える 1

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());
于 2016-09-22T13:58:28.437 に答える