2012-07-14 79 views
0

我這樣做是這樣的:如何獲得_id MongoDB/php?

$cursorLocations = $collection->find(array("locationName" => $locationName))->limit(1); 

if ($cursorLocations->count(true) == 1) { 
    $idLocations = $cursorLocations->getNext(); 
    echo $idLocations["_id"]; 
} 

我立即道歉,如果這個問題一直,但閱讀文檔並沒有找到答案。

也許一些其他的方式來獲得_id?

+0

嘗試單引號_id – DrinkJavaCodeJava 2012-07-14 20:59:48

回答

0
在蒙戈

db.collection.find({'field': 'value'}, {'_id' : 1}); 
在PHP

$cursorLocations = $collection->find(array("locationName" => $locationName), array('_id' => 1))->limit(1); 

上面的代碼將查詢限制爲僅檢索了_id領域,而不是其他領域,你仍然要提取該字段的值從find()函數的結果 - $cursor對象,如:

$_id = $cursorLoactions[`_id`]; 

還有一個MongoCursor方法key()返回當前_id

http://www.php.net/manual/en/mongocursor.key.php

所以,你可以這樣做:

$cursorLocations = $collection->find(array("locationName" => $locationName))->limit(1); 
$_id = $cursorLocations->key(); 
+0

謝謝您的留言。 你寫了嗎。沒有錯誤,但它顯示NULL。 – 2012-07-16 12:47:36

+0

@ArtPip我發現PHP部分有一個語法錯誤,在find(...)函數末尾有一個缺失的「)」,我只是發佈了一個編輯到我的答案,所以希望它會現在爲你工作:) – techexpert 2012-07-21 04:56:25

+0

@ArtPip ..sorry,但你爲什麼使用getNext()函數?你想獲得下一個記錄的'_id'還是當前記錄? – techexpert 2012-07-21 05:12:03