Javascript 续集findOne最新条目

Javascript 续集findOne最新条目,javascript,node.js,sequelize.js,Javascript,Node.js,Sequelize.js,我需要在表中查找最新条目。最好的方法是什么?该表具有Sequelize的默认createdAt字段。方法findOne是findAll方法的包装器。因此,您可以简单地使用限制为1的findAll,并按id降序 例如: YourModel.findAll({ limit: 1, where: { //your where conditions, or without them if you need ANY entry }, order: [ [ 'createdAt',

我需要在表中查找最新条目。最好的方法是什么?该表具有Sequelize的默认
createdAt
字段。

方法
findOne
findAll
方法的包装器。因此,您可以简单地使用限制为1的
findAll
,并按id降序

例如:

YourModel.findAll({
  limit: 1,
  where: {
    //your where conditions, or without them if you need ANY entry
  },
  order: [ [ 'createdAt', 'DESC' ]]
}).then(function(entries){
  //only difference is that you get users list limited to 1
  //entries[0]
}); 

我想你是指第6行的
createdAt
,而不是
id
。提交编辑:通常id是自动递增的。因此,id的最大值表示最后添加的条目。是的,你可以使用
createdAt
。如果你确定你更喜欢createdAt,我会接受你的编辑。然后呢
findOne
返回一个对象,
findAll
返回一个数组!这是一个巨大的差异@NicHartley,是的,如果假设id和createdAt都已被索引,我同意你的看法,当然createdAt更清晰,但正如我之前所说,createdAt通常是一个未被索引的审计字段,在数据库中添加新索引与重用主键之间存在一个权衡选择,总之,只维护一个不会降低插入/删除性能并节省磁盘空间的索引,只是想解释一下,根据情况,一个选项可能比另一个更好;您的代码可能是正确的,但如果有一些上下文,它将是一个更好的答案;例如,您可以解释提议的更改如何以及为什么会解决提问者的问题,可能包括相关文档的链接。这将使它对他们更有用,对其他正在寻找类似问题解决方案的网站读者也更有用。简单的问题。答案很简单。你不需要更多了。我自己也在寻找答案,而这些信息正是我一直在寻找的。在信息太多的混乱中,往往越少越好。@syzm当您的方法只返回一个结果时,为什么会有人对结果排序?如果您没有密钥怎么办?在大多数情况下,我们无法访问最新条目的密钥。我还认为这是一个比原始帖子更好的答案,因为它使用了正确的Sequelize方法,需要更少的参数,并且不需要从数组中展开。我还认为@VinceBowdren请求更多上下文是无效的,因为原始问题中没有上下文可以解释。要在不知道密钥的情况下查找最新条目,只需完全省略
where
参数
model.findOne({
    where: { key },
    order: [ [ 'createdAt', 'DESC' ]],
});