2013-01-19 67 views
1

我想更新mongoDB集合中的記錄到一個固定的限制。有沒有辦法在PHP/mongoDB中做到這一點?是否可以將mongoDB中的更新查詢限制爲特定限制?

我很瞭解'multi'的標誌。當multi設置爲true它將更新所有匹配記錄,否則只更新一條記錄。

但我需要的是,我想更新集合中的記錄到像SQL一樣的固定限制。

ex。 UPDATE table SET x=10 wher x=1 LIMIT 10

我想知道是否可以用mongoDB?

希望我很清楚我的問題。任何幫助,將不勝感激。

+0

不是在此刻,最好的辦法是,查詢在哪裏限制你記錄下來的某種條款或挑選出來的客戶端如果只有幾個。 – Sammaye

+0

@Sammaye sry我沒有明白你的意思。你能更清楚些嗎? – user1518659

+0

基本上,您可能可以在查詢中使用另一個帶'x'的字段來將記錄限制爲想要更新的記錄,但這通常不是真的。所以最好的方法是把它們拉出客戶端並在那裏正常運行。 – Sammaye

回答

0

據我所知,沒有這樣的功能。您可以採取以下解決方法:只需獲取要更新的文檔的_id,然後使用這些_id的文件更新所有文檔

2

目前無法將更新查詢(僅查找查詢)限制在您的應用程序中的MongoDB中。

目前這樣做的最好的辦法就是拉那些十(或其他)出在客戶端,你的PHP應用程序中,並且對他們的工作有其更新:

$cursor = $db->col->find(array('x' => 1))->limit(10) 
foreach($cursor as $row){ 
    $row['x'] = 10; 
    $db->col->save($row); // Update with set can be used too 
} 

提供它是一個小你也可以像@ nw90所說的那樣做,也就是把ObjectId取出來,然後用原子$set在一個查詢中完成。

您將要注意這一點:https://jira.mongodb.org/browse/SERVER-1599