NodeJS Mongoose Models
Schema : NodeJS Mongoose Schema
Models
All operations are done by Models
Model is created by schema
mongoose.connect('localhost', 'mydb');
var schema = new mongoose.Schema({ name: 'string', size: 'string' });
var Task = mongoose.model('Task', schema);
// Documents are instances of model
// Save
var s = new Task({size: 'small'});
s.save(function(err) {
if (err) {
return;
}
// saved
});
You can also use create method. it’s same as save
Remove
Task.remove({size: 'midium'}, function(err) {
if (err) return;
});
Query
select
We can use select column like database
var query = Person.findOne({ 'name.last' : 'Ghost'});
query.select('name occupation'); // SELECT
query.exec(function(err, person) { // use exec
// person
});
Example query(interesting full)
Person
.find({ occupation: /host/ }) // Regular Expression
.where('name.last').equals('Ghost')
.where('age').gt(10).lt(50)
.where('likes').in(['a', 'b'])
.limit(10)
.sort('-occupation') // .sort({occupation: -1})
.select('name occupation')
.exec(function(err, results) {
});
Documents
document is an instance of Model
Sub Doc
Sub-documents are docs with schemas of their own which are elements of a parents document array
Details are Guide
var childSchema = new Schema({ name: 'string' });
var parentSchema = new Schema({
children: [childSchema]
});
var Parent = mongoose.model('Parent', parentSchema);
var parent = new Parent({ children: [{ name: 'Lightning' }, { name: 'Sera' }] });
parent.children[0].name = 'Hope';
parent.save(function(err) {
});
Finding a sub-document
var doc = parent.children.id(id); // _id
