MongoDB 游标和内存
当我在 php 中使用 mongo DB 游标时:
$Cursor = \MyDocument::find();
foreach ($Cursor as $Document)
$Document->doSomething();
内存中是否只留下最后一个 $Document 还是我必须从游标对象中删除构建的文档?
When I use a mongo DB cursor in php:
$Cursor = \MyDocument::find();
foreach ($Cursor as $Document)
$Document->doSomething();
Is there then only left the last $Document in the memory or do I have to remove the built documents from the cursor object?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
基本上,只有
$Document
会位于内存中,这是foreach
迭代中的当前内存。只要您没有遇到实际内存问题,我就会保留这个简化的描述。
另请参阅: MongoDB - 为什么我应该使用游标而不是 iterator_to_array(在 PHP 中)。
MongoCursor 类文档也解释了这一点。
Basically, only
$Document
will be in memory which is the current one inside theforeach
iteration.As long as you're not running into actual memory problems, I would leave it with this simplified description.
See as well: MongoDB - Why should I use a cursor instead of iterator_to_array (in PHP).
The MongoCursor class documentation explains this as well.