我一直试图找出已经通过MongoDB手动创建的索引(我已经通过mongobooster为两个字段创建了2d球体索引,并通过定义创建了一个通过模式)。现在如果我在mongodbooster中运行此查询
db.collectionname.getIndexes();
它导致了3个带有name.key的文件以及我使用过的索引。我想在mongoose中执行相同的操作,我无法找到相同的查询。我试过这个
const indexes = OrderSchema.indexes();
console.log('index:', indexes);
但它只给了我一个索引,我已经在架构中定义了_id我需要另外两个字段,其中包含2d-sphere索引我怎么能得到它。我想在这里实现的是,如果已经创建了2d球体索引,则不创建索引,否则创建一个我想在这里实现的索引。任何帮助表示赞赏谢谢
答案 0 :(得分:2)
是的,你不能用模式来做。您需要先创建模型,然后才能执行以下操作:
Order.collection.getIndexes({full: true}).then(indexes => {
console.log("indexes:", indexes);
// ...
}).catch(console.error);