Mongodb 如何知道字段存在哪些索引?

Mongodb 如何知道字段存在哪些索引?,mongodb,Mongodb,我需要在代码中使用mongo索引。因此,我需要知道哪些属性具有索引 首先,我获取数据: const account = await Account.findOne({ _id: accountId }) 然后我使用它,但是在这个返回给我的对象中,似乎没有办法让我知道哪些属性有索引 如何知道字段存在哪些索引(如果有)?可以从Mongo shell中尝试: db.collection('account').getIndexes() 这将返回帐户集合中存在的所有索引。请注意,Mongo支持几种不同

我需要在代码中使用mongo索引。因此,我需要知道哪些属性具有索引

首先,我获取数据:

const account = await Account.findOne({ _id: accountId })
然后我使用它,但是在这个返回给我的对象中,似乎没有办法让我知道哪些属性有索引


如何知道字段存在哪些索引(如果有)?

可以从Mongo shell中尝试:

db.collection('account').getIndexes()

这将返回帐户集合中存在的所有索引。请注意,Mongo支持几种不同类型的索引,而且给定的索引可以包括一个或多个字段。

。并不是说“属性就是索引”,而是索引是为属性而存在的。没有1:1的相关性。一个属性可以在多个索引中使用,一个索引可以同时索引多个属性。@deceze-ty为了解释,我相应地更新了我的问题…?@deceze我在集合对象上找不到这样的函数。。。然而,本文档讲述了一个“listIndexes”函数,该函数可以完成这项工作,考虑到字段索引关系如何,API所能做的最好的事情就是提供一些方法,让您可以问“此字段是任何索引/哪些索引的一部分?”但考虑到这是一个非常容易回答的问题,您可以通过遍历所有索引,而且它不是你通常需要通过编程来查询的东西,API并不直接存在shell@papillon…这是一个非常不寻常的要求。通常,在运行JS代码之前,您会直接在Mongo上优化集合和索引。我希望为我的API提供一个工具,可以在一行中修补整个对象,而不必添加多个if-else需求,其中许多需求将包含多个深度级别。我想我可能会使用一个简单的findOneAndUpdate,但如果数据中某个点有一个对象列表,这就不起作用了,这就是为什么我要写一个函数来替换它。事实上,deceze在上面的评论中很好地解释了为什么我要问的函数性根本没有开发出来,yetI不明白为什么你需要通过编程来管理你的索引。直接进入Mongo和index。