我的项目中有两个模型 - 用户和游戏。以下代码表现得非常奇怪:
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;