2013-09-24 63 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