Develop a Node.js script that reads a CSV file containing user information (first name, last name, email, and age), validates the data, and inserts it into a MongoDB collection. Ensure proper error handling and use the Mongoose library for schema validation and interaction with the database.

To develop a Node.js script that reads a CSV file containing user information, validates the data, and inserts it into a MongoDB collection using Mongoose, follow these steps:

1. Install required packages
First, you need to install some required packages: `csv-parser`, `mongoose`, and `fs`. You can do this by running the following command in your terminal:

```bash
npm install csv-parser mongoose fs
```

2. Connect to MongoDB
Create a new file called `index.js` and set up a connection to your MongoDB database using Mongoose:

```javascript
const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/csv_import', {
  useNewUrlParser: true,
  useUnifiedTopology: true,
})
.then(() => console.log('Connected to MongoDB'))
.catch((err) => console.error('Failed to connect to MongoDB', err));
```

Replace `'mongodb://localhost/csv_import'` with your own MongoDB connection string.

3. Define the User schema and model
In the same `index.js` file, define the User schema and create a Mongoose model for it:

```javascript
const { Schema } = mongoose;

const userSchema = new Schema({
  firstName: { type: String, required: true },
  lastName: { type: String, required: true },
  email: { type: String, required: true, unique: true },
  age: { type: Number, min: 0 },
});

const User = mongoose.model('User', userSchema);
```

4. Read and import the CSV file
Now, read the CSV file line by line, validate the data, and insert it into the MongoDB collection using the User model:

```javascript
const fs = require('fs');
const csvParser = require('csv-parser');

const filePath = './users.csv'; // Replace with the path to your CSV file

fs.createReadStream(filePath)
  .pipe(csvParser())
  .on('data', async (row) => {
    try {
      const user = new User(row);
      await user.validate();
      await user.save();
      console.log(`User ${user.firstName} ${user.lastName} added to the database.`);
    } catch (err) {
      console.error(`Failed to add user: ${JSON.stringify(row)}\nError: ${err.message}`);
    }
  })
  .on('end', () => {
    console.log('CSV file processing completed.');
  });
```

Replace `'./users.csv'` with the path to your CSV file.

5. Run the script
Finally, run the script using Node.js:

```bash
node index.js
```

This will read the CSV file, validate the data, and insert it into the MongoDB collection. If there are any errors during validation or insertion, they will be logged in the console.