mongoose查询收集不返回结果?

时间:2017-06-29 19:24:52

标签: node.js mongodb mongoose

我有一个如此定义的模型:

game.js

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var Game = new Schema({
  game: String,
  lobby_size: Number });

module.exports = mongoose.model('games', Game, 'game_list');

我试图获取集合'game_list'中的所有条目并将它们打印到console.log进行调试

games.js

var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
var Games = require('../models/game.js');

router.get('/list', function(req, res) {
  Games.find({}, function(err, docs) {
    console.log(docs);
  });
});

module.exports = router;

以下是我连接db的代码:

app.js

// connect mongoose to db
mongoose.connect('mongodb://localhost/angulobby');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error: '));
db.on('open', function() {
  console.log('connected to database.');
});

当我在mongoDB shell中运行db.game_list.find({})时,我得到:

{ "_id" : ObjectId("595541d1d01f064117614a28"), "game" : "Counter-Strike: Global Offensive", "lobby_size" : 5 }

所以我知道集合已填充,但当我运行/list api调用时,console.log只打印[]

提前感谢大家的帮助!

1 个答案:

答案 0 :(得分:0)

找到解决方案。在我的本地mongoDB服务器中,我没有正确地将数据库设置到/angulobby数据库,因此它没有收到集合中的信息。发出命令use angulobby修复它,我现在可以收到正确的查询响应。