gpt4 book ai didi

javascript - 在 Meteor 中按日期过滤 Mongo 文档

转载 作者:行者123 更新时间:2023-11-28 04:54:00 24 4
gpt4 key购买 nike

此 Meteor 服务器代码解析 html 并获取类似“09/03/2017”的字符串,并将其保存到 mongodb 集合中,如下所示:

const date = ResObj.$(this).next().html().trim();
const dArr = date.split('/');
const dObj = new Date(parseInt(dArr[2]), parseInt(dArr[1]) - 1, parseInt(dArr[0]));
myCol.update({_id:'abc', {$set:{date: dObj}}});

稍后我需要返回 2 个日期(例如 09/03/2017)之间的文档。正在从客户端以格式 2017-03-09 接收搜索字符串。

myCol.find({date: {$gte: start, $lte: end}})

Moment.js 也已安装。我怎样才能做到这一点,以便输出采用甲酸盐 DD/MM/YYYY 格式?谢谢

最佳答案

您想要做的是将日期存储为日期对象,这样您就可以在数据库中查询它。

要使用 moment 来执行此操作,您需要将字符串解析为 moment 对象。这告诉 moment 使用提供的日期创建一个日期对象,并告诉它日期的格式,以便它知道哪些是天/月等。

const dateObj = moment(date, "DD/MM/YYYY").toDate()

然后,您可以使用 moment toDate() 函数将其转换为可以存储在数据库中的日期对象。

将其保存到数据库

myCol.update({_id:'abc', { $set:{ date: dateObj }}});

然后,当您返回客户端时,您可以再次使用 moment 格式化输出日期

const formattedDate = moment(dateFromDB).format("DD/MM/YYYY");

基本上,您总是希望将日期作为日期对象存储在数据库中,这样它们就可以在查询和排序等中使用。您只想使用 format() 将它们转换回字符串> 返回客户端。

关于javascript - 在 Meteor 中按日期过滤 Mongo 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42694259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com