Node.js MongoDB以另一种方式保存条目

Node.js MongoDB以另一种方式保存条目,node.js,mongodb,Node.js,Mongodb,我使用NodeJS,我有一个MongoDB集合,其中有很多条目。99%的时间选择最后一个条目,有时选择之前的条目。由于MongoDB必须一个接一个地遍历所有条目,因此将条目按另一种方式排序更为有用: 与此相反: { _id: "foo", name: "name" }, { _id: "bar", name: "name" } // <- new entry will be inserted here 我想用这个: // <- new entry w

我使用NodeJS,我有一个MongoDB集合,其中有很多条目。99%的时间选择最后一个条目,有时选择之前的条目。由于MongoDB必须一个接一个地遍历所有条目,因此将条目按另一种方式排序更为有用: 与此相反:

{
    _id: "foo",
    name: "name"
},
{
    _id: "bar",
    name: "name"
}
// <- new entry will be inserted here
我想用这个:

// <- new entry will be inserted here
{
    _id: "foo",
    name: "name"
},
{
    _id: "bar",
    name: "name"
},
因此,在大多数情况下,我搜索的条目是第一项或第二项

这是可能的还是必要的?它对速度有什么影响吗


我也可以反转项目,然后遍历它们,但我认为这不会更快。

您不必担心项目在集合中的位置。每个集合在_id字段上都有一个索引,因此如果您按此字段对集合进行排序,并获取第一个、第二个或第三个元素,您将很快进入,大约0毫秒

您还没有显示查询代码最后一个条目是什么意思?你是如何订购这些文件的?如果需要最后插入的项,{u id字段上的排序与创建时间相当吻合,因此可以使用db.collection.find.sort{{u id:-1}.limit1。您的意思是调用.sort。。是的,db.collection.find.sort{u id:-1}将使用索引。接下来,u可以将结果集限制为1、2或3个元素。使用极限法,即limit1。由于它将使用索引,您将直接获得结果。db.collection.find.sort{u id:-1}.limit1