2012-05-09 5 views
1

プロパティを私のMongoDB プロジェクトドキュメントの名前を取得しようとしています。名前を私に返す必要がある方法を見つけることができないようです。どんな助け/助言も高く評価されます。MongoDBカーソル/配列から「列」名を正常に抽出できません

マイコード:

$cursor = $collection->find($query); 
foreach ($cursor as $obj) { 
print_r ($obj); 
echo $obj; 
} 

ますprint_r戻り値:

Array ([Favorite] => 1171 [Desc] => EGG [Name] => MyThing) 

エコー戻り値:

Array 

私はABLになりたいです"Favorite"、 "Desc"、 "Name"を抽出しますが、いつでもそれらのフィールドを辿るので、代わりに値を取得します。

+1

はい、「Favorite」、「Desc」および「Name」は配列のキーであるためです。キーを取得して値として使用したい場合は、PHPのarray_keys()関数(http://php.net/manual/en/function.array-keys.php) –

答えて

1
$data = iterator_to_array($collection->find($query)); 
foreach($data as $d) 
    $names[] = array_keys($d); 
2

MongoDBには列がありません。すべてのドキュメントは基本的にJSONオブジェクトです。各文書は全く異なる構造を持つことができます。

私はPHPを使用しませんが、オブジェクトはPHPの連想配列として返されると思います。したがって、appropriate PHP functionsを使用して、具体的な文書のフィールド名をにします。繰り返しますが、コレクション全体の「列のリスト」を取得することはできません。

+0

[オ](https://github.com/AD7six/mongo-scripts/blob/master/listKeys.js) – AD7six

+0

@ AD7six:ああ、来る:) –

+0

@ AD7six:ところで、リンクに感謝します。 –