【问题标题】:mongodb cursor map in PHP [duplicate]PHP中的mongodb光标图[重复]
【发布时间】:2016-01-23 09:54:23
【问题描述】:
在这里我创建了一个包含单个文档的集合
db.getCollection('example').insert({"example":1});
MongoDB - Cursor - Map
在 mongo shell 命令中,我可以使用 mongo cursor map 命令获取输出。
但是,我正在努力寻找等效的 PHP 驱动程序实现。PHP Mongo Cursor。有其他选择吗?
db.getCollection('example').find({"example":1},{"_id":1}).map(function(doc) {
return {'id': doc._id.str }
})
【问题讨论】:
标签:
php
mongodb
mongodb-query
【解决方案1】:
您可能会发现 ArrayCollection 或类似的 Doctrine 实现对于他们自己的迭代器映射方法学说/公共库或学说/集合也很有用。
在您的特定情况下,我建议使用可调用参数实现简单的生成器(如果您需要保留 Cursor 加载的功能),或者只使用基本的 array_map 函数围绕 iterator_to_array 的结果和 Cursor 参数。
干杯。
更新:
这里简单的生成器示例:
php
function map_traversable(callable $mapper, \Traversable $iterator) {
foreach($iterator as $val) {
yield $mapper($val);
}
}
在这种情况下,您将遍历数据一次。