How to access MongoDB Altas Database using Mongoose
井民全, Jing, mqjing@gmail.com
1. Altas Dashboard
Home: https://www.mongodb.com/cloud/atlas
Click [Connect]

2. Application
2.1. Install requirement
2.2. Code
File: src/index.ts
const mongoose = require('mongoose');
const username = 'jing'; const passwd = '1234'; const databaseName = 'database-test-01';
const uri = `mongodb+srv://${username}:${passwd}@cluster0.jllg8.mongodb.net/${databaseName}?retryWrites=true&w=majority`; mongoose.connect(uri, {useNewUrlParser: true, useUnifiedTopology: true});
interface StatusType { id: number; msg: string; }
const schemaAJV = { properties: { id: {type: "number"}, msg: {type: "string"} }, }
const schema = { id: { type: Number, required: true }, msg: { type: String, required: true } } let s1:StatusType = {id: 123, msg: 'This is test msg 123.'};
const model= mongoose.model('Status', schema); // Create 'Status' collection const status1 = new model(s1); // ok // create a document const status2 = new model({id: 123, msg123: 'This is test msg.'}); // ValidationError error!
status1.save().then(() => {console.log('status1 saved');}); // insert the document status2.save().then(() => {console.log('status2 saved');}); // throw ValidationError: Status validation failed: msg: Path `msg` is required. |
2.3. Build & Test
2.4. Result


3. References
MongoDB Altas, https://www.mongodb.com/cloud/atlas
Mongoose API, https://mongoosejs.com/docs/api.html#
Mongoose Schema Type, https://mongoosejs.com/docs/schematypes.html
https://github.com/jdthorpe/mongoose-ajv-plugin
Using TypeScript with MongoDB, https://medium.com/swlh/using-typescript-with-mongodb-393caf7adfef