Mongodb ISODates and $match



目前我有一个设置为7月7日的ISODate。我有一个字符串是 7 月 7 日。我正在尝试在发票日期中隔离这些特定事件。我试过这个:

$match{InvoiceDate: {"$dateFromParts":{'year':year,'month':month,'day':d ay}}}

但是,我的数组不断获得 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')}}])

试试这个

最新更新