2014-02-06 217 views
0

我使用mongoose-random包從我的MongoDB數據庫中抓取隨機項目。這裏是我的代碼:貓鼬隨機不工作?

// 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); 
    }); 
}); 

好像我mongoose-random用法類似於文件here。如果你看一下在Git repository它比上NPM的一個略有不同的例子

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 

回答

3

不過,我收到此錯誤信息。

更改,增加了該插件quizSchema呼叫random()行,而不是僅僅通過它在:

quizSchema.plugin(random());