Find Functions
The filter
object is the same as in Mongoose, so you can write complex filters and benefit from type safety throughout the process.
By default, all the find functions in Bridge-mongo return lean results. This means that the documents are plain JavaScript objects instead of full Mongoose documents, resulting in faster queries and less memory usage.
Model.find()
Model.find() is used to fetch an array of documents from the database that match the given filter.
ts
Model.find(filter)// orModel.find(filter, projection)// orModel.find(filter, projection | undefined, options)
ts
Model.find(filter)// orModel.find(filter, projection)// orModel.find(filter, projection | undefined, options)
Options
ts
{limit?: number;skip?: number;sort?: Record<keyof Model, -1 | 1 | 'asc' | 'desc'>;session?: ClientSession; // from await conn.startSession()}
ts
{limit?: number;skip?: number;sort?: Record<keyof Model, -1 | 1 | 'asc' | 'desc'>;session?: ClientSession; // from await conn.startSession()}
Example
Schemas Definition
ts
import { createDB, Schema, mongoose } from 'bridge-mongo';// Defining a User Schemaconst userSchema = new Schema({name: { type: String, required: true },email: String,age: { type: Number, default: 18 },job: { type: String, enum: ['developer', 'designer'] },settings: {isActive: Boolean,},});// Defining a Post Schemaconst postSchema = new Schema({text: { type: String, required: true, unique: true },userId: { type: mongoose.Types.ObjectId, req: true },likes: Number,},{ timestamps: true },);// The keys correspond to the model Nameconst DB = createDB({User: userSchema,Post: postSchema,});
ts
import { createDB, Schema, mongoose } from 'bridge-mongo';// Defining a User Schemaconst userSchema = new Schema({name: { type: String, required: true },email: String,age: { type: Number, default: 18 },job: { type: String, enum: ['developer', 'designer'] },settings: {isActive: Boolean,},});// Defining a Post Schemaconst postSchema = new Schema({text: { type: String, required: true, unique: true },userId: { type: mongoose.Types.ObjectId, req: true },likes: Number,},{ timestamps: true },);// The keys correspond to the model Nameconst DB = createDB({User: userSchema,Post: postSchema,});
ts
async () => {constusers = awaitDB .user .find ({name : 'Nab' });constposts = awaitDB .post .find ({likes : {$gt : 10 } }, {likes : 1 });}
ts
async () => {constusers = awaitDB .user .find ({name : 'Nab' });constposts = awaitDB .post .find ({likes : {$gt : 10 } }, {likes : 1 });}
Model.findOne()
Model.findOne() is used to find the first document that match a specified filter.
ts
Model.findOne(filter)// orModel.findOne(filter, projection)// orModel.findOne(filter, projection | undefined, options)
ts
Model.findOne(filter)// orModel.findOne(filter, projection)// orModel.findOne(filter, projection | undefined, options)
Options
ts
{session?: ClientSession; // from await conn.startSession()}
ts
{session?: ClientSession; // from await conn.startSession()}
Example
Schemas Definition
ts
import { createDB, Schema, mongoose } from 'bridge-mongo';// Defining a User Schemaconst userSchema = new Schema({name: { type: String, required: true },email: String,age: { type: Number, default: 18 },job: { type: String, enum: ['developer', 'designer'] },settings: {isActive: Boolean,},});// Defining a Post Schemaconst postSchema = new Schema({text: { type: String, required: true, unique: true },userId: { type: mongoose.Types.ObjectId, req: true },likes: Number,},{ timestamps: true },);// The keys correspond to the model Nameconst DB = createDB({User: userSchema,Post: postSchema,});
ts
import { createDB, Schema, mongoose } from 'bridge-mongo';// Defining a User Schemaconst userSchema = new Schema({name: { type: String, required: true },email: String,age: { type: Number, default: 18 },job: { type: String, enum: ['developer', 'designer'] },settings: {isActive: Boolean,},});// Defining a Post Schemaconst postSchema = new Schema({text: { type: String, required: true, unique: true },userId: { type: mongoose.Types.ObjectId, req: true },likes: Number,},{ timestamps: true },);// The keys correspond to the model Nameconst DB = createDB({User: userSchema,Post: postSchema,});
ts
async () => {constpost = awaitDB .post .findOne ({likes : {$gt : 10 } }, {likes : 1 });}
ts
async () => {constpost = awaitDB .post .findOne ({likes : {$gt : 10 } }, {likes : 1 });}
Model.findById()
Model.findById() is used to find the first document that match the objectId given.
ts
Model.findById(ObjectId)// orModel.findById(ObjectId, projection)// orModel.findById(ObjectId, projection | undefined, options)
ts
Model.findById(ObjectId)// orModel.findById(ObjectId, projection)// orModel.findById(ObjectId, projection | undefined, options)
Options
ts
{session?: ClientSession; // from await conn.startSession()}
ts
{session?: ClientSession; // from await conn.startSession()}
Example
Schemas Definition
ts
import { createDB, Schema, mongoose } from 'bridge-mongo';// Defining a User Schemaconst userSchema = new Schema({name: { type: String, required: true },email: String,age: { type: Number, default: 18 },job: { type: String, enum: ['developer', 'designer'] },settings: {isActive: Boolean,},});// Defining a Post Schemaconst postSchema = new Schema({text: { type: String, required: true, unique: true },userId: { type: mongoose.Types.ObjectId, req: true },likes: Number,},{ timestamps: true },);// The keys correspond to the model Nameconst DB = createDB({User: userSchema,Post: postSchema,});
ts
import { createDB, Schema, mongoose } from 'bridge-mongo';// Defining a User Schemaconst userSchema = new Schema({name: { type: String, required: true },email: String,age: { type: Number, default: 18 },job: { type: String, enum: ['developer', 'designer'] },settings: {isActive: Boolean,},});// Defining a Post Schemaconst postSchema = new Schema({text: { type: String, required: true, unique: true },userId: { type: mongoose.Types.ObjectId, req: true },likes: Number,},{ timestamps: true },);// The keys correspond to the model Nameconst DB = createDB({User: userSchema,Post: postSchema,});
ts
import {isError } from 'bridge-mongo';async () => {constuser = awaitDB .user .findOne ({});if (isError (user )) returnconstpost = awaitDB .post .findById (user ._id , {likes : 1 });}
ts
import {isError } from 'bridge-mongo';async () => {constuser = awaitDB .user .findOne ({});if (isError (user )) returnconstpost = awaitDB .post .findById (user ._id , {likes : 1 });}