2 var assert = require('assert');
3 var mongoose = require('../../lib');
4 var Schema = mongoose.Schema;
5 var ObjectId = mongoose.Types.ObjectId;
11 var dbname = 'testing_populateAdInfinitum_' + require('../../lib/utils').random();
12 mongoose.connect('localhost', dbname);
13 mongoose.connection.on('error', function() {
14 console.error('connection error', arguments);
21 var user = new Schema({
24 type: Schema.ObjectId,
28 var User = mongoose.model('User', user);
30 var blogpost = Schema({
34 type: Schema.ObjectId,
38 var BlogPost = mongoose.model('BlogPost', blogpost);
44 mongoose.connection.on('open', function() {
49 var userIds = [new ObjectId, new ObjectId, new ObjectId, new ObjectId];
55 friends: [userIds[1], userIds[2], userIds[3]]
60 friends: [userIds[0], userIds[2], userIds[3]]
65 friends: [userIds[0], userIds[1], userIds[3]]
70 friends: [userIds[0], userIds[1], userIds[2]]
73 User.create(users, function(err) {
79 tags: ['fun', 'cool'],
93 BlogPost.create(blogposts, function(err) {
104 .exec(function(err, docs) {
108 * Populate the populated documents
112 path: 'author.friends',
117 BlogPost.populate(docs, opts, function(err, docs) {
119 console.log('populated');
120 var s = require('util').inspect(docs, {depth: null, colors: true});
130 if (err) console.error(err.stack);
131 mongoose.connection.db.dropDatabase(function() {
132 mongoose.connection.close();