最后访问的项目成为列表的第一项

Last item visited become first item of the list

这是我 return 来自项目 collection

的列表
Template.itemsList.helpers({
    items: function () {
        return Items.find({});
    }
});

如果我访问 项目 3 路线 /items/3 当我回到 /items 路线时,列表是

如果单击 项目 2 等等,结果相同。

是的,如果我用 Items.find({}, {sort: {name: 1}}) 订购 collection 然后访问 /items 路线,列表会正确显示。

为什么我注意到这个 - 对我来说很奇怪 - 行为?

这种行为乍一看似乎很奇怪,但实际上并非如此。如果您没有明确指定排序顺序,结果将以任意顺序返回,该顺序可能会随时间变化。

这取决于支持数据库的执行顺序。它可以在命令文件中添加到数据库中。或者可能按照上次更新或获取文档的时间顺序。这就是你似乎正在经历的。这是一个数据库实现细节,您应该永远不要依赖此行为。

如果顺序对您很重要,请始终明确指定!

Meteor 使用 Minimongo 模仿浏览器中的 mongo api。我不太了解它的实现,但它可以很好地使用顺序受文档访问影响的集合文档列表或堆栈。但最后一点只是我的猜测...