Supongo que ya sabe que MongoDB es un sistema de base de datos NoSQL que almacena datos en forma de documentos BSON. Sin embargo, su pregunta es sobre los paquetes para Node.js.
En términos de Node.js, mongodb es el controlador nativo para interactuar con una instancia de mongodb y mongoose es una herramienta de modelado de objetos para MongoDB.
Mongoose está construido sobre el controlador MongoDB para proporcionar a los programadores una forma de modelar sus datos.
EDITAR:
No quiero comentar cuál es mejor, ya que esto haría que esta respuesta sea obvia. Sin embargo, enumeraré algunas ventajas y desventajas de usar ambos enfoques.
Con Mongoose, un usuario puede definir el esquema para los documentos en una colección particular. Proporciona mucha comodidad en la creación y gestión de datos en MongoDB. En el lado negativo, aprender mangosta puede llevar algo de tiempo y tiene algunas limitaciones en el manejo de esquemas que son bastante complejos.
Sin embargo, si su esquema de colección es impredecible, o si desea una experiencia similar a la de Mongo-shell dentro de Node.js, continúe y use el controlador MongoDB. Es el más sencillo de recoger. La desventaja aquí es que tendrá que escribir grandes cantidades de código para validar los datos, y el riesgo de errores es mayor.