我想将Model :: find()返回的DocumentSet存储在memcached中。但是,当我从缓存中检索结果后尝试处理结果时,我得到下面的MongoException。具体地,使用的foreach时,该异常被\数据\源的63线呼叫时if ($this->_resource->hasNext())
抛出\ mongo_db \ Result.php使用Memcached缓存Model :: find()的结果
MongoException
的MongoCursor对象还没有被正确初始化通过其构造函数
我可以理解为什么会出现这种情况。
我的问题是,是否有预先填充Model :: find()或创建我自己的DocumentSet,以便我可以使用数据?通常,我只是将其转换为数组并将其存储在缓存中。但是,我需要访问一些我写的模型方法(例如:客户::全名())
更新:我发现有点workound那就是OK但不是很好。我将Model :: find()结果保存为缓存$result->to('array')
中的一个数组。然后,检索后,我循环遍历$结果,并为每个$ result填充一个新的数组,其中包含Model::create($result, array("exists" => true)
;
我喜欢你的自定义策略想法。目前,我依靠$ _schema进行正确的类型转换。 –