Skip to content

Instantly share code, notes, and snippets.

@bnoguchi
Created June 14, 2011 04:49
Show Gist options
  • Save bnoguchi/1024346 to your computer and use it in GitHub Desktop.
Save bnoguchi/1024346 to your computer and use it in GitHub Desktop.
mongoose GH-377 Example for showing how to update an embedded array member and then re-order the embedded array correctly
var mongoose = require('mongoose')
, Schema = mongoose.Schema ;
mongoose.connect('mongodb://localhost/test');
var EmbeddedDocSchema = new Schema({
date: Date
, name: String
});
mongoose.model('EmbeddedDoc', EmbeddedDocSchema);
var EmbeddedDoc = mongoose.model('EmbeddedDoc');
var ObservationSchema = new Schema({
time_label: String,
embedded_docs: [EmbeddedDocSchema]
});
mongoose.model('Observation', ObservationSchema);
var Observation = mongoose.model('Observation');
var o = new Observation();
o.embedded_docs.push(
{name: 'first', date: (+new Date) - 60000000 }
, {name: 'second', date: (+new Date) - 50000000 }
, {name: 'third', date: +new Date }
);
o.save(function(err){
if (err) throw err;
var toModify = o.embedded_docs[2];
toModify.date = (+new Date) - 55000000;
o.save( function (err) {
if (err) throw err;
toModify.remove();
o.save( function (err) {
if (err) throw err;
o.embedded_docs.splice(1, 0, toModify);
o.save( function (err) {
if (err) throw err;
console.log(o.embedded_docs);
mongoose.disconnect();
});
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment