我想将从 Model::find() 返回的 DocumentSet 存储在 memcached 中。但是,当我从缓存中检索结果后尝试处理结果时,我得到了下面的 MongoException。具体来说,使用foreach时,在if ($this->_resource->hasNext())
\data\source\mongo_db\Result.php的第63行调用时抛出异常
蒙哥异常
MongoCursor 对象尚未被其构造函数正确初始化
我能理解为什么会这样。
我的问题是,是否有预填充 Model::find() 或创建我自己的 DocumentSet 以便我可以处理数据?通常,我只是将其转换为数组并将其存储在缓存中。但是,我需要访问我编写的一些模型方法(例如:Customer::fullName())
更新:我发现了一些可以但不是很好的解决方法。我将 Model::find() 结果保存为 cache 中的数组$result->to('array')
。然后,在检索时,我遍历 $results 并Model::create($result, array("exists" => true)
为每个 $result; 填充一个新数组;