Node.js 查询日期范围内的Mongodb集合
我收集了以下文件:Node.js 查询日期范围内的Mongodb集合,node.js,mongodb,Node.js,Mongodb,我收集了以下文件: var interactions = [ { _id: 54ed77eec55b18101e82f205, email: 'customercare@tikona.in', contactCompanyName: 'tikona', contactFullName: 'Customercare', contactValue: 0, "interactionDate": "2016-03-30T08:28:58.000Z", }, { _
var interactions = [ { _id: 54ed77eec55b18101e82f205,
email: 'customercare@tikona.in',
contactCompanyName: 'tikona',
contactFullName: 'Customercare',
contactValue: 0,
"interactionDate": "2016-03-30T08:28:58.000Z",
},
{ _id: 54ed77eec55b18101e82f205,
email: 'inbox@google.com',
contactCompanyName: 'google',
contactFullName: 'inbox',
contactValue: 0,
"interactionDate": "2016-03-30T08:28:58.000Z",
},
{ _id: 54ed77eec55b18101e82f205,
email: 'nazar@zinavo.com',
contactCompanyName: 'zinavo',
contactFullName: 'nazar',
contactValue: 0,
"interactionDate": "2016-03-25T08:28:58.000Z",
},
{ _id: 54ed77eec55b18101e82f205,
email: 'nazar@zinavo.com',
contactCompanyName: 'zinavo',
contactFullName: 'nazar',
contactValue: 0,
"interactionDate": "2016-03-26T08:28:58.000Z",
},
{ _id: 54ed77eec55b18101e82f205,
email: 'nazar@zinavo.com',
contactCompanyName: 'zinavo',
contactFullName: 'nazar',
contactValue: 0,
"interactionDate": "2016-03-13T08:28:58.000Z",
},
{ _id: 54ed77eec55b18101e82f205,
email: 'inbox@google.com',
contactCompanyName: 'google',
contactFullName: 'inbox',
contactValue: 0,
"interactionDate": "2016-04-06T08:28:58.000Z",
},
{ _id: 54ed77eec55b18101e82f205,
email: 'nazar@zinavo.com',
contactCompanyName: 'zinavo',
contactFullName: 'nazar',
contactValue: 0,
"interactionDate": "2016-04-03T08:28:58.000Z",
}]
如何查询此集合,以便interactionDate
大于或等于过去60天,但小于或等于过去30天。i、 e我需要查找并统计2016年2月12日至2016年3月12日以及2016年3月12日至2016年4月12日期间的文件,然后找出这两个日期范围之间的交互次数差异
我尝试过的技巧
获取两个日期范围的交互。e、 g
{ '$gte': Fri Feb 12 2016 11:29:29 GMT+0530 (IST),
'$lte': Tue March 12 2016 11:29:29 GMT+0530 (IST) }
然后运行第二个查询:
{ '$gte': Fri Marc 12 2016 11:29:29 GMT+0530 (IST),
'$lte': Tue Apr 12 2016 11:29:29 GMT+0530 (IST) }
然后,对于每封电子邮件,减去交互次数
聚合查询:
{
$match:{
{"interactions.email":{$in:emailArr}}}
},
{
$group:{
_id: "$interactions.email",
count: { $sum: 1}
}
},
{
$sort: {"count" : -1}
},
{
$project:{
email: "$_id",
interactionCount
:
"$count",
_id
:
0,
}
你考虑过用大纪元存储日期吗?我没想过。但是大纪元时间应该如何帮助我呢?示例数据中的电子邮件ID是真实的吗?您可能不想公开客户电子邮件地址。它们不是真实的数据。它们只是时事通讯电子邮件ID:-)您的聚合操作表明在您的文档中有一个嵌入字段
交互。电子邮件,但您上面的示例文档不这么说,您能否对此进行澄清?