php - PHP 的 foreach 如何与 MongoDB Cursor 配合使用?

标签 php mongodb foreach

我们从 MongoDB 驱动程序中使用某些函数,例如迭代游标,我们可以使用“hasNext()”和“getNext()”。但我们也可以使用简单的 PHP 的 foreach 来迭代游标,而不必调用上述方法。

我的问题是,如果 foreach 是简单的 PHP 函数,它如何与 MongoDB 一起工作?它如何从游标中获取记录?它在内部使用 MongoDB 的“cursor.forEach()”还是在内部运行“hasNext()”和“getNext()”?

任何帮助将不胜感激。

最佳答案

MongoCursor类实现Iterator接口(interface)。因此,foreach光标与调用$cursor->next(),然后检查$cursor->valid()是一样的> 然后从 $cursor->current() 获取值(重复直到 validfalse)。对于 $key => $value 格式,它还会获取 $cursor->key() 的值。

它执行一些内部运行,但不运行“hasNext()”、“getNext()”等。它运行 Iterator 接口(interface)中抽象描述的标准方法。

抱歉我的挑剔,但是 foreach 不是“简单的 PHP 函数”;它是一种语言构造。我刚刚找到了关于 the difference 的很好的解释在 Stack Overflow 上。

关于php - PHP 的 foreach 如何与 MongoDB Cursor 配合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35839500/

相关文章:

php - 如何使用 prestashop 1.7 上的模块在前台创建自定义页面

javascript - 使用 forEach 定位数组元素

javascript - 使用 forEach() 删除对象元素

php - 当字符串绑定(bind)时,将 WHERE IN (...) 与 PDO 结合使用不起作用

php - 基于 MySQL 的搜索未显示完整结果

php - 使用 php 在下拉列表中从 MSSQL 中获取数据

javascript - 在 Meteor.js 中使用 forEach 生成传单标记

mongodb - 去mgo新记录?

MongoDB 如何将字符串类型的日期 yyyy-m-d 更新为 yyyy-mm-dd

javascript - 将jSTL的foreach varStatus传递给javascript