Documentation
Authenticate via email and password
Documentation
const client = new MongoClient ( {
endpoint : 'https://data.mongodb-api.com/app/YOUR_APP_ID/endpoint/data/v1' ,
dataSource : 'YOUR_CLUSTER_NAME' , // e.g. "Cluster0"
auth : {
email : 'YOUR_EMAIL' ,
password : 'YOUR_PASSWORD'
}
} )
Documentation
const client = new MongoClient ( {
endpoint : 'https://data.mongodb-api.com/app/YOUR_APP_ID/endpoint/data/v1' ,
dataSource : 'YOUR_CLUSTER_NAME' , // e.g. "Cluster0"
auth : {
apiKey : 'YOUR_API_KEY'
}
} )
Authenticate via custom JWT
Documentation
const client = new MongoClient ( {
endpoint : 'https://data.mongodb-api.com/app/YOUR_APP_ID/endpoint/data/v1' ,
dataSource : 'YOUR_CLUSTER_NAME' , // e.g. "Cluster0"
auth : {
jwtTokenString : 'YOUR_JWT'
}
} )
interface UserSchema {
_id : ObjectId
username : string
password : string
}
const db = client . database ( 'test' )
const users = db . collection ( 'users' )
const insertId = await users . insertOne ( {
_id : new ObjectId ( ) ,
username : 'user1' ,
password : 'pass1'
} )
const insertIds = await users . insertMany ( [
{
_id : new ObjectId ( ) ,
username : 'user1' ,
password : 'pass1'
} ,
{
_id : new ObjectId ( ) ,
username : 'user2' ,
password : 'pass2'
}
] )
const user1_id = await users . findOne < UserSchema > ( {
_id : new ObjectId ( 'SOME OBJECTID STRING' )
} )
const allActiveUsers = await users . find < UserSchema > ( { active : true } )
// count of all active users
const count = await users . countDocuments ( { active : true } )
// estimated count of all users
const estimatedCount = await users . estimatedDocumentCount ( )
const docs = await users . aggregate < UserSchema > ( [
{ $match : { username : 'many' } } ,
{ $group : { _id : '$username' , total : { $sum : 1 } } }
] )
const { matchedCount, modifiedCount, upsertedId } = await users . updateOne (
{ username : { $ne : null } } ,
{ $set : { username : 'USERNAME' } }
)
const { matchedCount, modifiedCount, upsertedId } = await users . updateMany (
{ username : { $ne : null } } ,
{ $set : { username : 'USERNAME' } }
)
const { matchedCount, modifiedCount, upsertedId } = await users . replaceOne (
{ username : 'a' } ,
{
username : 'user1' ,
password : 'pass1'
} // new document
)
const deleteCount = await users . deleteOne ( { _id : insertId } )
const deleteCount = await users . deleteMany ( { username : 'test' } )