如何从Mongoose获取已定义的索引

时间:2017-12-18 11:03:45

标签: node.js mongodb mongoose mongoose-schema

我一直试图找出已经通过MongoDB手动创建的索引(我已经通过mongobooster为两个字段创建了2d球体索引,并通过定义创建了一个通过模式)。现在如果我在mongodbooster中运行此查询

db.collectionname.getIndexes(); 

它导致了3个带有name.key的文件以及我使用过的索引。我想在mongoose中执行相同的操作,我无法找到相同的查询。我试过这个

const indexes = OrderSchema.indexes();
console.log('index:', indexes);

但它只给了我一个索引,我已经在架构中定义了_id我需要另外两个字段,其中包含2d-sphere索引我怎么能得到它。我想在这里实现的是,如果已经创建了2d球体索引,则不创建索引,否则创建一个我想在这里实现的索引。任何帮助表示赞赏谢谢

1 个答案:

答案 0 :(得分:2)

是的,你不能用模式来做。您需要先创建模型,然后才能执行以下操作:

Order.collection.getIndexes({full: true}).then(indexes => {
    console.log("indexes:", indexes);
    // ...
}).catch(console.error);