mongodb-altas-api-sdk
v0.1.1
Published
MongoDB Atlas Data API SDK
Downloads
4
Maintainers
Readme
MongoDB Atlas Data API
Constructor
Authenticate via email and password
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'
}
})
Authenticate via api-key
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
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'
}
})
Define Schema Type
interface UserSchema {
_id: ObjectId
username: string
password: string
}
const db = client.database('test')
const users = db.collection('users')
Insert
insertOne
const insertId = await users.insertOne({
_id: new ObjectId(),
username: 'user1',
password: 'pass1'
})
insertMany
const insertIds = await users.insertMany([
{
_id: new ObjectId(),
username: 'user1',
password: 'pass1'
},
{
_id: new ObjectId(),
username: 'user2',
password: 'pass2'
}
])
Find
findOne
const user1_id = await users.findOne<UserSchema>({
_id: new ObjectId('SOME OBJECTID STRING')
})
find
const allActiveUsers = await users.find<UserSchema>({ active: true })
Count
countDocuments
// count of all active users
const count = await users.countDocuments({ active: true })
estimatedDocumentCount
// estimated count of all users
const estimatedCount = await users.estimatedDocumentCount()
Aggregation
const docs = await users.aggregate<UserSchema>([
{ $match: { username: 'many' } },
{ $group: { _id: '$username', total: { $sum: 1 } } }
])
Update
updateOne
const { matchedCount, modifiedCount, upsertedId } = await users.updateOne(
{ username: { $ne: null } },
{ $set: { username: 'USERNAME' } }
)
updateMany
const { matchedCount, modifiedCount, upsertedId } = await users.updateMany(
{ username: { $ne: null } },
{ $set: { username: 'USERNAME' } }
)
Replace
const { matchedCount, modifiedCount, upsertedId } = await users.replaceOne(
{ username: 'a' },
{
username: 'user1',
password: 'pass1'
} // new document
)
Delete
deleteOne
const deleteCount = await users.deleteOne({ _id: insertId })
deleteMany
const deleteCount = await users.deleteMany({ username: 'test' })