使用貓鼬,如果我試圖找到使用db.model()像貓鼬文檔存儲在數據庫中的文檔建議,我沒有得到任何結果:(查找不與貓鼬4.6工作。*
不過,如果我使用db.collection()。find()方法,我得到的結果。
這是爲什麼?又會有怎樣使用下面?
在示例代碼的最佳方法app.js
var mongoose = require('mongoose');
mongoose.Promise = global.Promise;
mongoose.connect(config.database.url); // database configuration
app.locals.db = mongoose.connection;
app.locals.db.on('error', function(msg){
console.log("db connection failed", msg);
});
app.locals.db.once('open', function(){
console.log("db connected successfully");
});
在路由 - > person.js
var Person = require('Person');
router.post('/search', function(req, res) {
var person = new Person(req.app.locals.db);
person.getPerson(req.body.name, function(found, docs) {
if (found === false)
res.render('pageTpl', { results: 'person not found' });
else
res.render('pageTpl', { results: docs });
});
在Person.js
// schema here returns new mongoose.Schema({ fields : types })
const personSchema = require('./schemas/personSchema');
function Person(db) {
this.db = db;
}
Person.prototype.getPerson = function(term, callback) {
var Person = this.db.model('people', personSchema);
var q = Person.find({ name: /^term/ }).sort('age').limit(2);
q.exec(function(err, results) {
if (err) return callback (false, err);
// This returns [] results
console.log(results);
callback(true, results);
});
});
module.exports = Person;
在數據庫中,我有一個名爲:people的集合。我假設並猜測在this.db.model('people'...)中,人們是數據庫中集合的名稱?如果這是正確的:我不能使用我想要的任何名字? –