javascript - MongoDB 在调用字符串中比较 int

标签 javascript mongodb

我有一个 MongDB 集合,其中我的文档有一个存储为字符串的日期,如下所示:

"data": {
    "type": "MatchData",
    "matchId": "5b34f2d527f0d904f8ee4bbf",
    "groupId": "5b2a032ffc37de04f30dc412",
    "leaderboardId": "5b2a0387fc37de04f30e149d",
    "matchTitle": "",
    "date": "20180628144304"
}

如您所见,日期保存为字符串,但我希望能够找到所有日期早于当前日期的记录:

var currDate = 20180928000000
dbCollection('matches').find( { "groupId": groupId, "$lt": {"date": currDate} } );

当前示例无法正常工作,因为 currDate 是一个整数,而来自文档的日期是一个字符串!?我如何在查询中使用 parseInt 还是有其他方法?

希望得到帮助并提前致谢:-)

最佳答案

您可以将输入参数 currDate 转换为字符串

var currDate = "20180928000000"
dbCollection('matches').find({ "groupId": groupId, "$lt": { "date": currDate } })

或者如果您使用的是 4.0

然后你可以使用$toInt聚合算子

dbCollection('matches').find({
  "groupId": groupId,
  "$expr": { "$lt": [{ "$toInt": "$date" }, currDate]}
})

关于javascript - MongoDB 在调用字符串中比较 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52581374/

相关文章:

javascript - 要在空格键上播放的音频,请单击

javascript - 防止视野模糊的最佳方法?

javascript - jQuery 和 Canvas 加载行为

mongodb - 在没有鉴别器的情况下查询 MongoDB 中的文档

mongodb - Mongo 将嵌入式文档转换为数组

没有嵌入纬度经度字段的 MongoDB GeoSpatial 查询

javascript - 根据其他对象的数组属性对对象数组进行排序的最快方法

javascript - 将视频 blob 播放到 Canvas 中

node.js - 更新父子数据nodejs mongodb

node.js - 使用 auth 的 MongoDB/Mongoose 3.x 副本集故障转移/重新连接代码的一个很好的例子是什么?