是否有可能将mongoDB中的更新查询限制到特定的限制?


Is it possible to restrict the update query in mongoDB to a specific limit?

我想在mongoDB集合更新记录到一个固定的限制。有办法做到这一点在PHP/mongoDB?

我很了解'multi'标志。当multi设置为true时,将更新所有匹配的记录,否则只更新一条记录。

但是我需要的是,我想更新一个集合中的记录到一个固定的限制,就像在SQL。

交货。UPDATE table SET x=10 wher x=1 LIMIT 10

我想知道它是否可能与mongoDB?

希望我的问题讲清楚了。

目前不可能从应用程序中限制对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 s,然后使用原子$set在一个查询中完成所有这些。

您需要注意以下内容:https://jira.mongodb.org/browse/SERVER-1599

据我所知没有这样的函数。你可以这样做:获取想要更新的文档的_id然后用_id

更新所有文档