1.0.4 • Published 11 months ago

mongoose-uuid-ts v1.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

Mongoose UUID Schema Type

This is a custom schema type for Mongoose that allows storing and manipulating UUID (Universally Unique Identifier) values as buffers in MongoDB. It extends the existing UUID schema type provided by Mongoose.

Installation

To use the UUIDSchemaType, you need to have Mongoose and the uuid package installed in your project.

npm install mongoose uuid

Usage

  1. Import the required dependencies:
import mongoose from "mongoose";
import { v4 as uuidv4, validate as uuidValidate } from "uuid";
import { Buffer } from "buffer";
  1. Define the UUIDSchemaType class, extending the UUID schema type provided by Mongoose:
class UUIDSchemaType extends mongoose.Schema.Types.UUID {
  // Custom implementation of the UUID schema type
  // ...
}
  1. Implement the necessary methods (cast, castForQuery, get, checkRequired) in the UUIDSchemaType class according to your requirements. These methods handle the casting, querying, getting, and validation of UUID values.

  2. Register the UUIDSchemaType with Mongoose:

mongoose.Schema.Types.UUID = UUIDSchemaType;
  1. Now, you can use the UUID schema type in your Mongoose schemas:
const MySchema = new mongoose.Schema({
  uuidField: {
    type: mongoose.Schema.Types.UUID,
    required: true,
  },
  // ...
});

Example

Here's an example demonstrating the usage of the UUIDSchemaType:

// Import necessary dependencies and define UUIDSchemaType

// ...

// Add UUID to Mongoose Schema types
mongoose.Schema.Types.UUID = UUIDSchemaType;

// Create a sample schema
const UserSchema = new mongoose.Schema({
  id: {
    type: mongoose.Schema.Types.UUID,
    default: () => uuidv4(),
  },
  name: String,
});

// Create a model using the schema
const User = mongoose.model("User", UserSchema);

// Create a new user
const newUser = new User({
  name: "John Doe",
});

// Save the user to the database
newUser.save()
  .then((user) => {
    console.log("User created:", user);
  })
  .catch((error) => {
    console.error("Error creating user:", error);
  });

License

This code is provided under the MIT License.

Contributing

Contributions are welcome! If you find any issues or have suggestions for improvement, please open an issue or submit a pull request on GitHub.

Credits

This custom schema type is developed and maintained by Anshul Rai.

Resources

Feel free to modify and enhance the README as per your specific requirements and preferences.

1.0.4

11 months ago

1.0.2

11 months ago

1.0.1

11 months ago

1.0.0

11 months ago