【发布时间】:2014-12-03 11:04:17
【问题描述】:
我正在开发一个网站,我们的系统管理员可以在该网站上选择是否选择从 mongodb 或 elasticsearch 检索我们的数据。我可以很好地设置两者,但我想设置一个 switch case,它将根据站点管理部分中的首选项选择正确的文档检索系统。当 mongo 返回一个 stdClass 对象时,我可以遍历该对象以使用以下内容打印每个项目:
foreach($items as $item)
{
print_r($item);
}
然后我可以使用 $items->count() 检索返回项目的总数。但是,当使用 elasticsearch 时,我返回了一个我需要去的对象:
foreach($items['hits']['hits'] as $item)
{
print_r($item);
}
可以使用 $items['hits']['total'] 检索计数。如果我从elasticsearch返回的数据中提取项目数组(我们称之为“$finalitems”和计数(我们称之为$count),我怎样才能将它转换为像mongo返回的stdClass对象,以便我可以直接迭代通过类来获取每个项目的值,以及调用将检索计数的方法 count()?我想这样做,以便我可以轻松地在两个数据对象之间切换,而无需完全独立的函数处理同样的任务。
【问题讨论】:
-
print_r($items);在第二种情况下的输出是什么?如果您要返回一个对象,那么这样的数组表示法将不起作用。
标签: php mongodb object elasticsearch