我想在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