Reputation: 337
I'm using mongoose-random
package to grab random item from my MongoDB database. Here's my code:
// Bring Mongoose into the app
var mongoose = require( 'mongoose' );
var random = require('mongoose-random');
var DBNAME = 'test';
var COLLNAME = 'koleksigj';
var DBURI = 'mongodb://localhost/' + DBNAME;
// Connect to DB
mongoose.connect(DBURI);
// Create the schema
var quizSchema = new mongoose.Schema({ title: String, body: String });
quizSchema.plugin(random);
// Make the model
var Quiz = mongoose.model('Quiz', quizSchema);
// Make query
Quiz.findRandom(function (err, quiz) {
console.log(quiz);
})
// CONNECTION EVENTS
// When successfully connected
mongoose.connection.on('connected', function () {
console.log('Mongoose default connection open to ' + dbURI);
});
// If the connection throws an error
mongoose.connection.on('error',function (err) {
console.log('Mongoose default connection error: ' + err);
});
// When the connection is disconnected
mongoose.connection.on('disconnected', function () {
console.log('Mongoose default connection disconnected');
});
// If the Node process ends, close the Mongoose connection
process.on('SIGINT', function() {
mongoose.connection.close(function () {
console.log('Mongoose default connection disconnected through app termination');
process.exit(0);
});
});
It seems like my mongoose-random
usage is similar to the documentation here.
However I get this error message:
hfz:mong-final Hfz$ node all.js
/Users/Hfz/Dev/nodejs/mong-euro/mong-final/all.js:23
Quiz.findRandom(function (err, quiz) {
^
TypeError: Object function model(doc, fields, skipId) {
if (!(this instanceof model))
return new model(doc, fields, skipId);
Model.call(this, doc, fields, skipId);
} has no method 'findRandom'
at Object.<anonymous> (/Users/Hfz/Dev/nodejs/mong-euro/mong-final/all.js:23:6)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3
Upvotes: 0
Views: 513
Reputation: 311945
If you look at the example in the Git repository it's slightly different than the one on NPM.
Change the line that adds the plugin to quizSchema
to call random()
instead of just passing it in:
quizSchema.plugin(random());
Upvotes: 3