首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有PHP和MongoDB的MongoDB

带有PHP和MongoDB的MongoDB
EN

Stack Overflow用户
提问于 2017-09-28 18:27:13
回答 1查看 787关注 0票数 2

我对蒙戈非常陌生,我有一个简单的问题。如何使用MapReduce和非遗留的MongoDB驱动程序http://php.net/manual/en/set.mongodb.php或在https://packagist.org/packages/mongodb/mongodb中找到的更高级别的包mongodb/mongodb

  • 我看到的每个例子似乎都使用了遗留驱动程序(http://php.net/manual/en/book.mongo.php)。它们都使用MongoCode对象,这个对象在mongodb.php中不存在。它存在于mongo.php (遗留驱动程序)中。当我尝试使用它时,它会说“类'MongoCode‘找不到”。

我的代码看起来像是:

代码语言:javascript
运行
复制
$function = "function() { emit(this); }";
$map = new \MongoCode($function);

$command = $db->command([
    "mapreduce" => "db.archiveData",
    "map" => $map,
    "query" => $query,
    "out" => "data"
]);

那是因为:

  • mongodb/mongodb不支持MapReduce。或者也许现在还不支持,但会支持吗?
  • 我必须为MapReduce使用遗留驱动程序吗?
  • 我必须想出一种方法通过服务器上的db.collection.mapReduce通过JavaScript调用?
  • 我必须使用聚合管道(https://docs.mongodb.com/manual/aggregation/)来执行映射减少类型的操作吗?但这感觉要有限得多。

我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2017-10-06 21:02:38

所以我现在清楚了事情的发展方向。

这里也有这样的例子:

代码语言:javascript
运行
复制
$database = (new MongoDB\Client)->selectDatabase('db_name');
$cursor = $database->command([
    'mapReduce' => 'collection_name',
    'map' => new MongoDB\BSON\Javascript('...'),
    'reduce' => new MongoDB\BSON\Javascript('...'),
    'out' => 'output_collection_name',
]);

$resultDocument = $cursor->toArray()[0];

您也可以通过Doctrine (http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/map-reduce.html)使用MapReduce,但这是使用遗留和垫片。因此,对于一个新项目来说,可能不是一个好的选择。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46475990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档