抱歉,但我是 MongoDB 的新手,我想我了解分片的概念,以及如何通过散列分片键在服务器之间分布数据 - 但是我不确定您如何知道要查询哪个分片。
例如 - 我有一个用户集合,它是分片的,并且有一个 _id_hashed 的索引(到目前为止很好 - 用户分布均匀良好)然后我需要让那些在一段时间内处于非活动状态的用户超时
$c->update(array('session.lastLogged'=>array('$lt'=>$time - ($timeout*60))), array('$set' => array('session'=>'') ));
我收到以下错误:
For non-multi updates, must have _id or full shard key ({ _id: "hashed" }) in query
但是我不知道要查询的id,而且session数据会发生变化,所以不能作为shard key
这是我的数据结构或查询的问题吗?