Mongodb Mongo排序列表复杂性

Mongodb Mongo排序列表复杂性,mongodb,sortedlist,Mongodb,Sortedlist,对于以下已排序列表: { sorted_list : [{name : <string>,score : <Number>}] } 删除: collection.update({"sorted_list.name": name},{ $pull: { "sorted_list.name": <name> } },{ multi: true }); 编辑 假设存在以下索引: {sorted_list.name:1}这里有三个操作。查找和删除相当简单,因

对于以下已排序列表:

{
   sorted_list : [{name : <string>,score : <Number>}]
}
删除:

collection.update({"sorted_list.name": name},{ $pull: { "sorted_list.name": <name> } },{ multi: true });
编辑

假设存在以下索引:


{sorted_list.name:1}

这里有三个操作。查找和删除相当简单,因为一个使用记录的标记,另一个也可能受到索引内容的可变影响,因此更新也会受到影响。如果这里有一个问题,那么它似乎是关于更新更多。就像在现有的x元素列表中引入n个值并执行排序一样。您确实意识到,在MongoDB中不断增长的文档没有分配空间,这意味着它们实际上是在移动的。也许你更关心的应该是映射复杂性。所以,总结一下:Find-Oskip+limit。Remove关于索引,其中n是list.Update中的记录数,仍然是一个问题。至于分配空间,你可能是对的,但这是一个单独的问题。这实际上是更重要的问题。除了家庭作业,复杂性理论并不能为你解决任何问题。但是除了我指出你的问题是三个问题之外,还有。。1.我提到带标记的数组值了吗?我想是的。2.这是问题的核心,但指出了你应该问的问题。3.可变因素太多。其他人可能会有所不同,但我个人对那些想证明自己刚刚完成了计算科学或数学单元的人印象不深。解决真正的问题更重要。
collection.update(
   { _id: 1 },
   {
     $push: {
       sorted_list: {
         $each: [ { name: 3, score: 8 }, { name: 4, score: 7 }, { name: 5, score: 6 } ],
         $sort: { score: 1 }
       }
     }
   }
)
collection.update({"sorted_list.name": name},{ $pull: { "sorted_list.name": <name> } },{ multi: true });