Mongodb ISODates和$ match

时间:2018-08-10 09:20:54

标签: node.js mongodb isodate

目前,我有一个ISODate设置为7月7日。我的字符串是7月7日。我正在尝试隔离InvoiceDate中的那些特定事件。我已经尝试过了:

$ match {InvoiceDate:{“ $ dateFromParts”:{'year':year,'month':month,'day':day}}}}

但是,我的数组一直为NULL。我不知道这里出了什么问题。有人可以帮我吗。

2 个答案:

答案 0 :(得分:0)

为此使用力矩库,在要传递的字符串中指定日期格式:

/* 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))

答案 1 :(得分:-1)

您可以像这样过滤特定日期的mongodb文档。

$match([{invoiceDate:$gte:moment(date_to_check).startOf('day'),$lte:moment(date_to_check).endOf('day')}}])

尝试一下