Mongoose - find()方法不适用于第二个集合

时间:2017-06-20 15:56:56

标签: node.js mongoose

我的项目中有两个模型 - 用户和游戏。以下代码表现得非常奇怪:

var mongoose = require('../lib/mongoose.js');
var User = require('../models/user').User;
var Game = require('../models/game').Game;

User.count(function(err, count) {
    console.log("users count: " + count); //prints 2
});

Game.count(function(err, count) {
    console.log("games count: " + count); //prints 3
});

User.find(function(err, users) {
    if(err) throw err;

    console.log("users: ");
    console.log(users); //prints all users
});

Game.find(function(err, games) {
    if(err) throw err; //no error throwed

    console.log("games: "); //This never runs
    console.log(games);
});

可以使用User(按预期记录所有用户),但Game.find从不调用回调。

另一个有趣的细节:if" Game"集合为空,查找工作正常,打印空数组。但是当有任何文件时,它就会停止工作。它也不适用于mongoose查询。

还尝试使用第三个参数创建模型,如下所示:

exports.Game = mongoose.model('Game', schema, 'Game');

但它也适用于空集合

Mongoose模块,如果你需要它

var mongoose = require('mongoose');
var config = require('../config');

mongoose.Promise = global.Promise;
mongoose.connect(config.get('mongoose:uri'), config.get('mongoose:options'));

module.exports = mongoose;

0 个答案:

没有答案