我似乎有使用光標,我試着將數據從一個MongoDB中的一些麻煩光標訪問MongoDB的值。這裏是我的簡單的數據結構的截圖:不能使用PHP
data structure screenshot http://droplr.com/IpcH+
我嘗試使用以下命令:
$collection_name = "users";
$collection = $this->mongo->db->$collection_name;
$which_document = array("email" => $email_address);
$which_fields = array("words");
$cursor = $collection->find($which_document, $which_fields);
但我的$光標似乎並沒有進一步去任何插入文檔比實際的文件。最後,我想在「words」字段的created_at字段中對sort()和limit()進行排序,但我似乎陷入了僵局。而且MongoDB的錯誤傳遞不是很有幫助,或者我不知道如何正確使用它。 (我認爲是後者。)
一個想法:我不知道正在生成方括號內的「字」表是正確的,但這裏是我用在這裏插入數據的代碼:
function create_word($word, $email_address){
$collection = 'users';
// make sure word isn't null
if($word !== NULL){
// add new data to the 'words' set
$new_data = array('$addToSet' => array('words' => array(
'word' => $word,
'status' => 'open',
'created_at' => time()
)));
$this->mongo->db->$collection->update(array('email' => $email_address), $new_data);
}
非常感謝您的幫助,您可以給!
啊,點符號!當在PHP驅動程序中使用點符號時,是否有一條硬性規定?不幸的是,沒有運氣。這是使用[this code](http://droplr.com/QUJW)的光標值var_dump的[截圖](http://droplr.com/hHjj)。我錯過了更新的內容嗎?實際上我將在created_at上進行排序,但我嘗試在「1」和「-1」之間交替,沒有任何區別。 – 2010-09-22 21:06:02
我很好奇,現在就自己試試。排序子文檔不起作用。文檔中的示例涵蓋了一種不同的排序方式,即在文檔中嵌套值並對所有文檔進行排序,而不是嵌套數組。 – halfdan 2010-09-22 21:44:48
有趣。這是我使用MongoDB的第一個項目,從您的角度來看,您會提出某種數據重構嗎?這似乎是一個相當重要的問題,因爲我將基本上對這些數據進行分頁,使用.limit(),.skip()和.sort()會很好。 – 2010-09-22 21:46:07