2013-09-24 82 views
0

我正在尝试运行一个全文搜索来对照存储在使用锂电池的mongoDb中的一些数据。在锂电池中运行的MongoDB命令

这里是我正在试图做到这一点在我的控制器:

$mongodb = Connections::get('default')->connection; 
$results = Page::connection()->connection->command(array("text" => "Page", 'search' => "term")); 

我也试过:

$results = Page::connection()->connection->command(array("text" => "Page", 'search' => "term")); 

然而,这两个回报:致命错误:调用到成员函数命令()在非对象上

我做错了什么?

编辑:

我要补充一点,在第一个简单的查询工作就好了。例如:

$results = Page::find('all'); 

是否像我期望的那样返回一个包含页集合中所有文档的数组。

更新2:

我从WAMP服务器运行所有这些。我今天试着从linux服务器上运行它,但仍然有同样的错误。我真的很难过,可以使用一些帮助。有人有主意吗?

这里是页模式,因为它位于现在:

<?php 
namespace app\models; 

use lithium\data\Connections; //added during debugging 
use lithium\data\source\MongoDb; //added during debuging 

class Page extends \lithium\data\Model { 

} 
?> 

这里是我的连接:

Connections::add('default', array(
     'type' => 'MongoDb', 
     'host' => '192.168.48.128', 
     'database' => 'my_collection' 
)); 
+0

什么是'页面'?它是否延伸'锂\数据\模型'?我假设如此。你的锂电从哪里安装? Github上?作曲家?你有版本号吗? – rmarscher

+0

Page只是一个简单的模型。像这样: '<?php namespace app \ models; 类页扩展\锂\数据\型号{ \t } ?>' 不知道的版本号,但我只是下载了它从GitHub 3天前。 – user2566987

回答

0

有帮助弄清楚...张贴在这里供他人参考。调用它的

正确的方法是:

$conn = Model::connection(); 
$db = $conn->selectDB('db'); 
$result = $db->command(array(... 

做过这样,当完美的作品。

2

我做这样说:

$plugins = Plugins::connection()->connection->command([ 
    'text' => 'plugins', 
    'search' => $this->request->query['q'] 
]); 
return compact('plugins'); 

所以我建议检查你的配置 - 你的模型是否正常返回其他数据?连接配置是否正确?

+0

是的,我的模型运行返回简单的发现就好了。该代码是从您的控制器运行还是从您的模型中运行?是否有任何特殊的导入/命名空间/用途必须用于使其运行? – user2566987

+0

你有什么机会让我知道你的模型是如何在你的例子中设置的? 你有没有在连接文件中做任何特殊的事情? 您的控制器中需要的任何“使用”声明? – user2566987