meh*_*123 3 algorithm big-o mongodb
MongoDB查找操作和删除操作的大复杂性是什么?假设我的MongoDB集合中有n个字符串-'abc',并且我使用abc.find()查询集合'abc'以获取abc中的所有元素,那么此操作的运行时复杂度是多少?
另外,如果我做abc.remove({“ string”:s},考虑到我的集合中有n个元素,那么运行时的复杂性又是什么呢?
你的问题取决于指数是否可用于查询条件您的find与否。如果可以使用索引,则还取决于索引的类型:
如果无法使用索引,则可以下注O(n)。
在大多数情况下,索引是b树,在这种情况下,您可以期望O(log n)。
在特殊情况下,可以使用哈希索引,并且只要您的查询查找确切的值,它就可以是O(1)。
您可以使用abc.explain()ton分析查询执行计划(COLLSCANO(1)与IXSCAN特定于索引类型的big-O)。
为了删除集合中的某个项目,必须更新所有索引。从上面可以推断,它很大程度上取决于引用此集合的索引数量和类型。