【发布时间】:2018-08-10 09:20:54
【问题描述】:
目前我有一个设置为 7 月 7 日的 ISODate。我有一个字符串是 7 月 7 日。我正在尝试隔离 InvoiceDate 中的那些特定事件。我试过这个:
$match{InvoiceDate: {"$dateFromParts":{'year':year,'month':month,'day':day}}}
但是,我的数组一直为 NULL。我不知道这里有什么问题。谁能帮帮我。
【问题讨论】:
目前我有一个设置为 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))
【讨论】:
您可以像这样过滤特定日期的 mongodb 文档。
$match([{invoiceDate:$gte:moment(date_to_check).startOf('day'),$lte:moment(date_to_check).endOf('day')}}])
试试这个
【讨论】: