MongoDB复合索引

时间:2017-10-27 21:23:54

标签: mongodb indexing

我有一组看起来像这样的文件:

{
  location: { type: "Point", coordinates: [-76, 42 }, 
  serial: "as23ksfda",
  topic: "rainbows",
  date: ISODate("2017-01-01T04:35:12-04:00")
}

我想运行以下条件为限的查询:

  • 日期(范围,即$and: [{$gt: ISODate("2017-01-01T04:30:21-04:00")}, {$lt:ISODate("2017-02-01T04:30:21-04:00")}])和序列号
  • 日期和主题
  • 日期,序列和位置(即$near: {$geometry: etc... }
  • 日期,主题和位置

换句话说:

  • 始终参与日期
  • 始终涉及序列或主题
  • 位置是可选的

鉴于此信息,我想在集合上创建一组适当的索引,以便获得良好的查询性能(显然不会严重影响写入性能,通常的索引权衡)。

例如,如果我创建:

db.collection.createIndex({
  serial: 1, 
  date: 1,
  location: "2dsphere"
})

...我还应该创建一个额外的索引来支持我想要的查询集(不包括位置)吗? e.g:

db.collection.createIndex({
  serial: 1, 
  date: 1
})

......或者是无偿的,没有帮助?

0 个答案:

没有答案