这令人沮丧,超乎想象。
我需要在Laravel 5中结合MongoDB使用Eloquent ORM从表中获取列名。我找到了一些例子,但它们都没有为我工作,因为它们可能是专门为SQL做的。我试过this和this没有成功,不知道吗?
谢谢!
答案 0 :(得分:2)
在这种情况下最好使用 raw()
方法,并使用本地MongoCollection方法(如 find()
)来迭代集合并获取文档数组中的键:
// Returns an array of field names from a collection of User models.
$keys = DB::collection('users')->raw(function($collection)
{
$cursor = $collection->find();
$array = iterator_to_array($cursor);
$fields = array();
foreach ($array as $k=>$v) {
foreach ($v as $a=>$b) {
$fields[] = $a;
}
}
return array_values(array_unique($fields));
});
答案 1 :(得分:0)
MongoDB没有列或表 - 重点在于它没有模式,因此没有列可供您获取名称。
由于每个文档可能不同,因此您需要获取集合中的所有文档,并构建每个文档包含的唯一键数组。