node.js - 如何只显示最新的文档?
问题描述
我让猫鼬在 Node.JS/Discord.JS 上搜索一个文档,我对其进行了排序{ date: -1 }
,它仍然发送数据库中最旧的文档。
这是我的代码,我做错了什么?
gLog.
findOne({ "GiveawayHostID": name }).
sort({ date: -1}).
exec(function (err, host) {
这是上面使用的架构:
const mongoose = require("mongoose");
const gLogSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
GiveawayHost: String,
GiveawayHostID: String,
Prize: String,
WinnerUsername: String,
WinnerUsernameID: String,
time: String
});
module.exports = mongoose.model("GiveawayLogs", gLogSchema)
解决方案
您的架构中似乎没有date
字段,因此 mongoose 无法按日期排序。您可以按时间排序:
findOne({ "GiveawayHostID": name }).
sort({ time: -1}).
exec(function (err, host) {
但是,这可能不会返回预期结果,因为您的time
字段被标记为String
. 所以猫鼬会按字母顺序对你的时间进行排序。
要解决此问题,您可以将time
变量更改为一种timestamp
格式。否则,您需要将该date
字段添加到您的架构中并按照此示例进行操作。
推荐阅读
- android - 如何在不单击任何内容的情况下移动到另一个活动
- python - Google Analytics 事件出现在控制台中,但在 Api v4 结果中不再出现
- python - 这个函数如何返回一些值?
- javascript - Chrome.storage.local.set:无法正确设置和推入数组
- javascript - 如何将内联图例添加到 highchart 中的折线/区域混合图表
- python - 如何防止图表标题在图形更新后左对齐?
- android - 如何在中文ROM中动态启用自动启动?
- spring - 如何在测试用例运行期间拥有spring data jpa的存储库接口bean
- php - 使用 Stripe PHP 捕获错误
- javascript - 如何使用 Cheerio 获得这些值?