i\'ve seen many answers to this question here, but i still don\'t get it (maybe because they use more \"complex\" examples)... So what im trying to do is a schema for a \"Cu
const mongoose = require('mongoose')
// Make connection
// https://mongoosejs.com/docs/connections.html#error-handling
mongoose.connect('mongodb://localhost/test')
// Define schema
// https://mongoosejs.com/docs/models.html#compiling
const CustomerModel = mongoose.model('CustomerModel', {
firstName: String,
lastName: String,
company: String,
connectInfo: {
tel: [ Number ],
email: [ String ],
address: {
city: String,
street: String,
houseNumber: String,
},
},
})
// Create a record
// https://mongoosejs.com/docs/models.html#constructing-documents
const customer = new CustomerModel({
firstName: 'Ashish',
lastName: 'Suthar',
company: 'BitOrbits',
connectInfo: {
tel: [
8154080079,
6354492692,
],
email: [
'asissuthar@gmail.com',
'contact.bitorbits@gmail.com',
],
address: {
city: 'Radhanpur',
street: 'Vithalnagar',
houseNumber: '101',
},
},
})
// Insert customer object
// https://mongoosejs.com/docs/api.html#model_Model-save
customer.save((err, cust) => {
if (err) return console.error(err)
// This will print inserted record from database
// console.log(cust);
})
// Display any data from CustomerModel
// https://mongoosejs.com/docs/api.html#model_Model.findOne
CustomerModel.findOne({ firstName: 'Ashish' }, (err, cust) => {
if (err) return console.error(err)
// To print stored data
console.log(cust.connectInfo.tel[0]) // output 8154080079
})
// Update inner record
// https://mongoosejs.com/docs/api.html#model_Model.update
CustomerModel.update({ firstName: 'Ashish' }, {
$set: {
'connectInfo.tel.0': 8154099999,
},
})
// address model
var addressModelSchema = new Schema({
city: String,
street: String,
houseNumber: String
})
mongoose.model('address',addressModelSchema ,'address' )
// contactInfo model
var contactInfoModelSchema = new Schema({
tel: [Number],
email: [String],
address: {
type: mongoose.Schema.Type.ObjectId,
ref: 'address'
}
})
mongoose.model('contactInfo ',contactInfoModelSchema ,'contactInfo ')
// customer model
var customerModelSchema = new Schema({
firstName: String,
lastName: String,
company: String,
contactInfo: {
type: mongoose.Schema.Type.ObjectId,
ref: 'contactInfo'
}
});
mongoose.model('customer', customerModelSchema, 'customer')
// add new address then contact info then the customer info
// it is better to create model for each part.