对不起,如果之前有人询问过.我找不到明确的答案.如果我的查询包含$或运算符,我可以在mongodb索引上查询吗?我的查询看起来像这样:
// find everything in the collection
$cursor = $collection->find(array(
'$or' => array(
array('album_id' => array(
'$in' => $this->my_album_ids
),
'type' => array(
'$in' => array('like','comment')
)
),
array(
'user_id' => (int)session_item('user_id'),
'type' => 'message',
'reply' => 'no'
)
),
'timestamp' => array('$gt' => (int)$since)))->sort(array('timestamp'=>-1))->skip($start)->limit($amount);
Run Code Online (Sandbox Code Playgroud)
示例是在PHP中,但我想这适用于任何语言.
更新:
以下是我的索引,但上面的查询不使用它们.虽然看起来对我来说.
$collection->ensureIndex(array(
'album_id' => 1,
'type' => 1,
'timestamp' => -1,
));
$collection->ensureIndex(array(
'user_id' => 1,
'type' => 1,
'reply' => 1,
'timestamp' => -1,
));
Run Code Online (Sandbox Code Playgroud)
这是我的解释()
Array
(
[cursor] => BasicCursor
[nscanned] …Run Code Online (Sandbox Code Playgroud) 我想知道是否有数千个不同的索引是个坏主意?
我正在基于ElasticSearch向我的网络应用添加搜索页面.搜索页面允许用户通过过滤许多不同的索引标准(名称,位置,性别等)来搜索站点上的其他用户.这是相当直接的,只需要一个索引,其中包含该站点的每个用户的文档.
但是,我还想创建一个页面,用户可以在其中查看他们关注的所有其他用户的列表.我希望此页面具有搜索页面上可用的相同过滤选项.我想知道一个好的方法是为每个用户创建一个单独的索引,包含他们关注的每个用户的文档?