mongodb - 水线如何制作反向索引

标签 mongodb sails.js waterline

我使用 sails.js 和 waterline 在 mongodb 上收集了大量时间序列。

我发现如果将我的索引更改为反向,它可以将我的查询时间缩短 40%。

是否可以在我的模型上实现反向索引?或者如果不是。当水线正在构建我的模型时,它是否有一个解决方法可以让我使用 sails 或 grunt 为我设置?

“包含字段和值对的文档,其中字段是索引键,值描述该字段的索引类型。对于字段上的升序索引,指定值 1;对于降序索引,指定值 -1。”

mongodb 网站上的索引文档: Mongodb: Create Index

最佳答案

您可以使用 sails-hook-mongoat包为您的 sails 模型添加高级 mongo 索引选项。

用法很简单:

// api/models/MyModel.js
module.exports = {
  attributes: {
    myDate: {
      type: 'date',
      required: true
    }
  },
  indexes: [
    {
      attributes: {
        myDate: -1
      }
    }
  ]
};

您还可以使用 Mongo Index Options :

  // [...]
  indexes: [
    {
      attributes: {
        myDate: -1
      },
      options: {
        unique: true
        expireAfterSeconds: 60
      }
    }
  ]
  // [...]

关于mongodb - 水线如何制作反向索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38339319/

相关文章:

javascript - 如何从 Mongoose 中的多个数组更新数组内的值?

node.js - Node js异步mongodb find()查询多次调用

javascript - Mongoose 更新子文档的子文档

node.js - sails JS : Setting autoPK:false still generates mongodb's id attribute

node.js - 从异步方法返回数据的服务

node.js - 如何使用sails.js 为模型定义实例方法

Javascript 德州扑克数据库

node.js - Sails Waterline 大文件 PostgreSQL

javascript - Sails.js + grunt 不编译 Assets

Javascript DateTime 与 MySQL 日期和时区