Laravel 5使用MongoDB Eloquent - 从文档

时间:2015-09-21 07:59:46

标签: mongodb laravel-5 eloquent

这令人沮丧,超乎想象。

我需要在Laravel 5中结合MongoDB使用Eloquent ORM从表中获取列名。我找到了一些例子,但它们都没有为我工作,因为它们可能是专门为SQL做的。我试过thisthis没有成功,不知道吗?

谢谢!

2 个答案:

答案 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没有列或表 - 重点在于它没有模式,因此没有列可供您获取名称。

由于每个文档可能不同,因此您需要获取集合中的所有文档,并构建每个文档包含的唯一键数组。

看到这个答案: MongoDB Get names of all keys in collection