Thin MongoDB ODM built for Standard Schema
mongodb zod deno
1import { z } from 'zod'; 2import { defineModel, MongoModel, connect, disconnect, InferModel, InsertType } from '../src'; 3import { ObjectId } from 'mongodb'; 4 5// 1. Define your schema using Zod 6const userSchema = defineModel(z.object({ 7 name: z.string(), 8 email: z.string().email(), 9 age: z.number().int().positive().optional(), 10 createdAt: z.date().default(() => new Date()), 11})); 12 13// Infer the TypeScript type from the Zod schema 14type User = InferModel<typeof userSchema>; 15type UserInsert = InsertType<typeof userSchema>; 16 17async function runExample() { 18 try { 19 // 3. Connect to MongoDB 20 await connect('mongodb://localhost:27017', 'mizzleorm_example'); 21 console.log('Connected to MongoDB'); 22 23 // 2. Create a MongoModel for your collection 24 const UserModel = new MongoModel('users', userSchema); 25 26 // Clean up previous data 27 await UserModel.delete({}); 28 29 // 4. Insert a new document 30 const newUser: UserInsert = { 31 name: 'Alice Smith', 32 email: 'alice@example.com', 33 age: 30, 34 }; 35 const insertResult = await UserModel.insertOne(newUser); 36 console.log('Inserted user:', insertResult.insertedId); 37 38 // 5. Find documents 39 const users = await UserModel.find({ name: 'Alice Smith' }); 40 console.log('Found users:', users); 41 42 // 6. Find one document 43 const foundUser = await UserModel.findOne({ _id: new ObjectId(insertResult.insertedId) }); 44 console.log('Found one user:', foundUser); 45 46 // 7. Update a document 47 const updateResult = await UserModel.update( 48 { _id: new ObjectId(insertResult.insertedId) }, 49 { age: 31 } 50 ); 51 console.log('Updated user count:', updateResult.modifiedCount); 52 53 const updatedUser = await UserModel.findOne({ _id: new ObjectId(insertResult.insertedId) }); 54 console.log('Updated user data:', updatedUser); 55 56 // 8. Delete documents 57 const deleteResult = await UserModel.delete({ name: 'Alice Smith' }); 58 console.log('Deleted user count:', deleteResult.deletedCount); 59 60 } catch (error) { 61 console.error('Error during example run:', error); 62 } finally { 63 // 9. Disconnect from MongoDB 64 await disconnect(); 65 console.log('Disconnected from MongoDB'); 66 } 67} 68 69runExample(); 70 71 72 73