我正在尝试使用该行获取最新的 50 个文档
const msgs = await messages.find({ 'group': this.id }, { limit: 50 })
但这只能获取最旧的 50 个文档,而不是最新的文档
有什么办法可以解决这个问题吗?
最佳答案
您缺少指示文档创建时间范围的行,例如 sort: {'createdAt': 'desc'}
。
这将允许您根据创建日期(应该是 Date
类型)仅获取最新的 50 个文档。
否则,您将需要使用一些其他属性来指示创建文档的顺序(id
通常是随机值,因此使用它进行排序将无法按预期进行)。
messages.find({ 'group': this.id })
.sort({'createdAt': 'desc'})
.limit(50)
.then(msgs => {
console.log(msgs)
});
const msgs = await messages.find({ 'group': this.id }, { sort: {'createdAt': 'desc' }, limit: 50 })
关于javascript - mongodb 中使用 .find() 获取最新 50 个文档(monk),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62666534/