集合中的每个元素都具有以下格式:
{
"Name": "Some Name",
"Description": "Some description",
"Tags": ["java", "code", "some tag"]
}
我在字段“Tags”上创建了索引,如下所示:
db.Establishments.ensureIndex({ Tags: 1 });
现在我想查询以查找以“ja”开头的所有标签(例如自动完成建议)。
有没有一种直接查询索引的方法,或者只涉及索引操作的高效查询,而不是查询集合?
答案 0 :(得分:2)
我想您实际上想要查询标记属性并为自动完成功能返回不同的值,对吗?
使用不同的方法很容易:
db.Establishments.distinct( 'Tags' )
有关不同查询的详情,请参阅http://docs.mongodb.org/manual/reference/method/db.collection.distinct/
关于索引查询的问题:你不能直接询问索引 - 索引就是这样提供查询优化。在索引属性上使用distinct将很快。
要查询distinct方法,请执行:
db.Establishments.distinct( 'Tags', { 'Tags': /^ja/ } )