本文为NoSQL数据模型设计系列的一部分。
mongodb会为数组字段创建多值索引。这一特性提供一种方式实现关键查询。
首先创建一个字符串数组字段包含需要的关键字,然后在这个字段上创建索引,最后利用这个索引进行关键字查询。
例如下面文档包含主题关键字
{ title : "Moby-Dick" ,
author : "Herman Melville" ,
published : 1851 ,
ISBN : 0451526996 ,
topics : [ "whaling" , "allegory" , "revenge" , "American" ,
"novel" , "nautical" , "voyage" , "Cape Cod" ]
}
在主题字段上创建数组,mongodb将会为每个主题值创建一个索引。
db.volumes.createIndex( { topics: 1 } )
基于此索引查询
db.volumes.findOne( { topics : "voyage" }, { title: 1 } )
关键字索引的限制
- 不支持文字解析
- 不支持同义词分析
- 不支持比重分析
- 不支持异步索引
完整内容请查看NoSQL数据模型设计系列