The cursor returned by Doc.find() is reactive, meaning that if you use it inside an autorun or a template helper, the original query (with original parameter values) will be run again whenever the query result changes.
So my guess is that your problem does not relate to the query being reactive or not, but rather to how to track a changing date in a reactive manner. Maybe you can tell us more about your need? What do you want to achieve?
Doc.find() is reactive. But I can’t think of a ideal solution for making “new Date()” reactive.
If Doc.find() is executed, the timestamp at the time of execution is fixed and won’t change until the next time Doc.find() is reactively re-executed. However as far as I can tell, there’s no way to trigger Meteor’s reactive nature unless I use a session or autorun – and using a timer to re-execute the query seems like an incredibly bad solution.