2012-08-29 98 views
1

我正在使用pymongo包装的有关申请我的模式是这样的:mongodb-索引的查询

{ 
    _id: <some_id>, 
    name: <some_name>, 
    my_tags: [<list_of_tags>] 
} 

现在我想返回用户指定的标签下,落在这些条目。例如, 我想要my_tags应该是atleast的条目[“college”,“USA”,“engineering”]。对于我读$ all构造可以使用。现在我想知道的是,它是否可以用作my_tags上的索引。对于我的应用程序,这种类型的查询被广泛使用。

+0

您是否亲自尝试了所有数据和代码?它工作或没有工作?你的问题有什么意义? $ all的行为被深入记录 - 那么为什么我们会重新验证$ all的功能?尝试与你的数据,然后回来,如果你有问题与所有...所以你的问题是什么? –

+0

我确实尝试了$全部,它运行得很好。我只想知道是否有任何优势,我索引my_tags。就文档而言,我提到了http://www.mongodb.org/display/DOCS/Multikeys他们已经讲述了有关数组的索引,但我想知道它是否可以与$ all操作符一起使用。它不在$文档中。 –

回答

3

会是任何使用使得在my_tags索引。对于我的应用程序,这种类型的查询被广泛使用。 https://jira.mongodb.org/browse/SERVER-5331https://jira.mongodb.org/browse/SERVER-1000

通常情况下,文档只能提醒你的时候:

是$所以它仍然是良好的,使一个有但是仍然有可以为它做的优化都将使用索引有些东西不能使用索引。

+0

仍然记住,所有匹配第一个标签的文档都会被扫描以获取更多细节,因此第一个标签应该尽可能选择性 – Dukeatcoding

+0

@Dukeatcoding这里还有另一个需要注意的地方,那就是$ $都和$ in很像,在这方面,如果索引是针对您为其制作的查询进行预先排序的,那么它的效果会更好,我没有将其添加到最初的答案 – Sammaye

+0

很高兴知道,我现在正在使用同义词标记查询并考虑缓存结果,你有这样的模式吗? – Dukeatcoding