【发布时间】:2016-12-14 17:26:43
【问题描述】:
我的模型是这样的
/* models/songs.js */
var mongoose = require('mongoose');
var SongsSchema = new mongoose.Schema({
genres: [ String ],
popularity: Number,
trackId: String,
artistIds: [ String ],
users: [ String ],
trackName: String // human readability
});
var Songs = mongoose.model("Songs", SongsSchema);
module.exports = {
Songs: Songs
};
这是我的路线中的内容
/* routes/index.js */
var mongoose = require('mongoose');
var Songs = mongoose.model('Songs');
router.get('/api/genre', function(req, res, next) {
var genre = req.query.genre.replace(/%26/, '&');
genre = req.query.genre.replace(/-/g, ' ');
console.log('attempting to find', genre);
Songs.find({
genres: genre
}, function(err, songs, count) {
console.log('count', count);
console.log('songs', songs);
res.json(songs.map(function(song) {
console.log('hello ', song);
return song.trackId;
}));
});
});
"attemping to find" 可以很好地注销,但是 Songs.find 回调中的所有行都没有注销任何内容。关于这一点的奇怪部分是它没有给我任何错误。另一个奇怪的事情是,我还尝试在routes/index.js 的其他部分使用 Songs.find,它们工作正常。我还尝试在我的歌曲文档中使用findOne 和其他功能,但它们似乎不起作用。我也尝试过查看其他 StackOverflow 问题,但似乎没有一个有我的答案。
【问题讨论】:
标签: node.js mongodb mongoose mongoose-schema