创建索引的api,3.0之后使用createIndex,ensureIndex已经废弃 * 对于单字段索引,排序的顺序是升序还是降序无关紧要
db.records.createIndex( { userid: 1 } )
//下列查询语句可以使用到该索引
db.records.find( { userid: 2 } )
db.records.find( { userid: { $gt: 10 } } )
db.people.createIndex( { "address.zipcode": 1 } )
//示例数据
{
_id: ObjectId(...),
metro: {
city: "New York",
state: "NY"
},
name: "Giant Factory"
}
//创建索引
db.factories.createIndex( { metro: 1 } )
//下列查询会用到该索引
db.factories.find( { metro: { city: "New York", state: "NY" } } )
//该查询不会用到子文档索引,因为子文档字段顺序不匹配
db.factories.find( { metro: { state: "NY", city: "New York" } } )
//创建复合索引
db.events.createIndex( { "username" : 1, "date" : -1 } )
//下面2个查询将使用上面的索引(一升一降)
db.events.find().sort( { username: 1, date: -1 } )
db.events.find().sort( { username: -1, date: 1 } )
//下面这个查询将使用不到上面的索引
db.events.find().sort( { username: 1, date: 1 } )
//创建MultiKey索引
db.inventory.createIndex( { ratings: 1 } )
//精确匹配查找ratings数组为5,9
db.inventory.find( { ratings: [ 5, 9 ] } )
//找到数据:
{ _id : 5, type : "food" , item : "bbb" ,ratings : [ 5 , 9 ] }
//在comments字段上建立文本索引
db.reviews.createIndex( { comments: "text" } )
//在subject和comments字段上建立文本索引
db.reviews.createIndex(
{
subject: "text",
comments: "text"
}
)
//在文档内所有字符串类型的字段上建立文本索引
db.collection.createIndex( { "$**": "text" } )
//在字段a上建立hash索引
db.active.createIndex( { a: "hashed" } )
喜欢 (4)or分享 (0)