【发布时间】:2011-09-20 15:14:17
【问题描述】:
我有一个需要帮助的问题,但我觉得我已经很接近了。它涉及 Lithium 和 MongoDB 代码如下所示: http://pastium.org/view/0403d3e4f560e3f790b32053c71d0f2b
$db = PopularTags::connection();
$map = new \MongoCode("function() {
if (!this.saved_terms) {
return;
}
for (index in this.saved_terms) {
emit(this.saved_terms[index], 1);
}
}");
$reduce = new \MongoCode("function(previous, current) {
var count = 0;
for (index in current) {
count += current[index];
}
return count;
}");
$metrics = $db->connection->command(array(
'mapreduce' => 'users',
'map' => $map,
'reduce' => $reduce,
'out' => 'terms'
));
$cursor = $db->connection->selectCollection($metrics['result'])->find()->limit(1);
print_r($cursor);
/**
User Data In Mongo
{
"_id" : ObjectId("4e789f954c734cc95b000012"),
"email" : "example@bob.com",
"saved_terms" : [
null,
[
"technology",
" apple",
" iphone"
],
[
"apple",
" water",
" beryy"
]
] }
**/
我有一个他们搜索的用户储蓄条款,然后我试图获得最流行的条款 但我不断收到错误消息,例如:Uncaught exception 'Exception' with message 'MongoDB::__construct( invalid name '。有人知道如何执行此操作或某个方向吗?
【问题讨论】:
标签: php mongodb mapreduce lithium nosql