2013-01-19 69 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