It really depends on your needs.
Mongoose has a great community, tons of plugins and actively developed with support from 10gen engineers. If your coming from a traditional ORM type system then mongoose will probably offer the smoothest transition. Mongoose offers some nice type safety and validation along with trying hard to make operations atomic by default.
Mongoose may not be a good fit if:
* simplicity is paramount. As a mongoose project grows with multiple developers and business rules. Behavior can be harder to track down because of the pre / post hooks or someone slapping in a plugin. This isn't mongoose specific but something to be mindful of.
* ad hoc schemas. You can do it with mongoose but it's kinda a pain. It can also be largely solved with the Mixed data type. But dynamic collections isn't a strong suit of mongoose.
* Your task is heavy in writes. More importantly, data generated from introspection like map reduce, groups and aggregation. While mongoose can do this the ad hoc issue above can make it cumbersome at times. If your tasks are creating stable schemas in defined collections it's a non issue.
* speed is super critical. Mongoose wraps everything which adds a bit of overhead. Mongoose does offer lean to bypass this. Personally I don't think this is a great argument against it unless you have some serious traffic.
Personally I would use mongoose. You can always add a lower level driver for specialized tasks later. It doesn't have to be an all or nothing approach ;-)