我们有流星应用程序,我们使用mongodb作为数据库。现在,由于VIEW功能已经在MongoDB上可用,我们试图使用它来生成报告。但是,我们在收集日期字段和当前日期方面存在问题,因此我们甚至无法使用$ project下的mongodb聚合检索当前日期字段,因为我们不知道获取当前日期的正确语法。我们的目标是,因为它正在使用视图,我们希望将新的Date()(这是今天的日期代码)替换为当前的mongodb日期方法。无法在MongoDB中查看当前日期查看查询
"waiting_for_appointment" : {
$cond : {
if: { $eq: ["$current_status", "Waiting For Appointment"]},
then: {
$cond : {
if: {$gt: [{$subtract: [ new Date(), "$statuses.waiting_for_appointment.from_date" ]}, 0]},
then: {
$cond: {
if: {$gt: [{$subtract: [ "$statuses.waiting_for_appointment.to_date", "$statuses.waiting_for_appointment.from_date" ]}, 0]},
then: {$multiply : [{
$divide: [{$subtract: [ new Date(), "$statuses.waiting_for_appointment.from_date" ]}, {$subtract: [ "$statuses.waiting_for_appointment.to_date", "$statuses.waiting_for_appointment.from_date" ]}]
}, 100]
},
else: 0
}
},
else: 0
}
},
else: -1
}
},
查询工作正常,但是当我再次编辑视图的查询,我发现它转换为静态日期,日期时被查询被保存。这是我们在保存查询并编辑回来后得到的。
ISODate("2017-10-09T02:12:42.282+0000")
这就是为什么如果日期发生变化,查询将不会生效。
在此先感谢。
嗨@Dom,感谢您的回复。只是想澄清,如果你在做mongoDB的VIEW功能呢?该视图功能,我们可以存储一个mongodb语句,例如聚合类型,或者我们可以用我们的应用程序调用meteor应用程序作为使用find方法的集合。我们的目标是如何在mongodb视图上存储不会转换为静态的实际日期。就像我上面解释的那样,我们在声明中使用'new Date()',但在保存该语句后,它会转换为静态为'ISODate(“2017-10-09T02:12:42.282 + 0000”) '。 –
啊,对。您可能需要删除并重新创建视图才能获得预期结果,这可能与您首先想要使用视图的原因相矛盾。如果我找到办法做到这一点,我会告诉你。 –
谢谢@Dom,我还在做一项研究。 :-) 谢谢您的帮助。 –