summaryrefslogtreecommitdiffstats
path: root/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/population/population-of-existing-doc.js
diff options
context:
space:
mode:
Diffstat (limited to 'common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/population/population-of-existing-doc.js')
-rw-r--r--common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/population/population-of-existing-doc.js109
1 files changed, 109 insertions, 0 deletions
diff --git a/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/population/population-of-existing-doc.js b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/population/population-of-existing-doc.js
new file mode 100644
index 0000000..c7eadfe
--- /dev/null
+++ b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/examples/population/population-of-existing-doc.js
@@ -0,0 +1,109 @@
+
+var mongoose = require('../../lib');
+var Schema = mongoose.Schema;
+
+console.log('Running mongoose version %s', mongoose.version);
+
+/**
+ * Console schema
+ */
+
+var consoleSchema = Schema({
+ name: String,
+ manufacturer: String,
+ released: Date
+});
+var Console = mongoose.model('Console', consoleSchema);
+
+/**
+ * Game schema
+ */
+
+var gameSchema = Schema({
+ name: String,
+ developer: String,
+ released: Date,
+ consoles: [{
+ type: Schema.Types.ObjectId,
+ ref: 'Console'
+ }]
+});
+var Game = mongoose.model('Game', gameSchema);
+
+/**
+ * Connect to the console database on localhost with
+ * the default port (27017)
+ */
+
+mongoose.connect('mongodb://localhost/console', function(err) {
+ // if we failed to connect, abort
+ if (err) throw err;
+
+ // we connected ok
+ createData();
+});
+
+/**
+ * Data generation
+ */
+
+function createData() {
+ Console.create(
+ {
+ name: 'Nintendo 64',
+ manufacturer: 'Nintendo',
+ released: 'September 29, 1996'
+ },
+ function(err, nintendo64) {
+ if (err) return done(err);
+
+ Game.create({
+ name: 'Legend of Zelda: Ocarina of Time',
+ developer: 'Nintendo',
+ released: new Date('November 21, 1998'),
+ consoles: [nintendo64]
+ },
+ function(err) {
+ if (err) return done(err);
+ example();
+ });
+ }
+ );
+}
+
+/**
+ * Population
+ */
+
+function example() {
+ Game
+ .findOne({name: /^Legend of Zelda/})
+ .exec(function(err, ocinara) {
+ if (err) return done(err);
+
+ console.log('"%s" console _id: %s', ocinara.name, ocinara.consoles[0]);
+
+ // population of existing document
+ ocinara.populate('consoles', function(err) {
+ if (err) return done(err);
+
+ console.log(
+ '"%s" was released for the %s on %s',
+ ocinara.name,
+ ocinara.consoles[0].name,
+ ocinara.released.toLocaleDateString()
+ );
+
+ done();
+ });
+ });
+}
+
+function done(err) {
+ if (err) console.error(err);
+ Console.remove(function() {
+ Game.remove(function() {
+ mongoose.disconnect();
+ });
+ });
+}