node.js - Mongodb ISODates 和 $match
问题描述
目前我有一个设置为 7 月 7 日的 ISODate。我有一个字符串是 7 月 7 日。我正在尝试隔离 InvoiceDate 中的那些特定事件。我试过这个:
$match{InvoiceDate: {"$dateFromParts":{'year':year,'month':month,'day':day}}}
但是,我的数组一直为 NULL。我不知道这里有什么问题。有人可以帮助我。
解决方案
为此使用矩库,在您传递的字符串中指定日期格式:
/* set to 12:00:00 am 17 July 2018 */
const start = moment('7-17-2018', 'M-DD-YYYY').startOf('day').toDate();
/* set to 11:59:59 pm 17 July 2018 */
const end = moment('7-17-2018', 'M-DD-YYYY').endOf('day').toDate();
collection.find({ 'invoiceDate': { '$gte': start, '$lte': end } })
.toArray((err, data) => console.log(data))
或与聚合
collection.aggregate([
{ '$match': {
'invoiceDate': { '$gte': start, '$lte': end }
} }
], (err, data) => console.log(data))
推荐阅读
- python - 尝试使用 aiohttp 在 url 中查找值时如何修复 'TypeError:'URL' 类型的参数不可迭代'
- jquery - jquery通过ajax发送隐藏输入
- swift - 如何使用 UIActivityViewController 将 UIImage 共享到相机胶卷
- excel - 如何在过滤运行时错误 1004 后删除可见行
- javascript - 如何使用 vue.js 从应用程序中的任何其他组件触发组件事件?
- python - 熊猫:从另一个数据框中复制列时出错
- azure - Azure 更新模块 - 缺少数据工厂?
- sql - 将值放在 SQL 数据集中的最小 ID 记录中
- javascript - Chrome V8 如何编译和运行 Javascript?
- r - 传播后如何继续订购