Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Mongoose返回Mongo对象,但可以';我不能访问它的属性_Javascript_Json_Node.js_Mongoose - Fatal编程技术网

Javascript Mongoose返回Mongo对象,但可以';我不能访问它的属性

Javascript Mongoose返回Mongo对象,但可以';我不能访问它的属性,javascript,json,node.js,mongoose,Javascript,Json,Node.js,Mongoose,在我的简单Node/Mongo/Mongoose设置中,我有一个函数,它调用服务器查看我当前使用的最高ID,并返回下一个ID。此函数将创建新游戏的功能作为回调 怪异:下面显示的logger.log result { _id: 555d83d5bb0d4e3c352d896f, gameId: 'NaN' } 但当我将记录器更改为 logger.log("result", result.gameId); 输出是 result { _id: 555d83d5bb0d4e3c352d896f, g

在我的简单Node/Mongo/Mongoose设置中,我有一个函数,它调用服务器查看我当前使用的最高ID,并返回下一个ID。此函数将创建新
游戏的功能作为回调

怪异:下面显示的
logger.log

result { _id: 555d83d5bb0d4e3c352d896f, gameId: 'NaN' }
但当我将记录器更改为

logger.log("result", result.gameId);
输出是

result { _id: 555d83d5bb0d4e3c352d896f, gameId: 'NaN' }
这毫无意义。很明显,财产就在那里

这是我的密码

var createGame = function(gameNickname, callback){
    nextGameId(function(nextId){

        var newgame = new models.Game({
            "gameId": Number(nextId),
            "gameNickname": gameNickname
        });
        newgame.save(function(result, game){
            callback(result + nextId);
        });
    });


};
var nextGameId = function(callback){
    var games = models.Game.find({}, {gameId: 1});
    games.sort('-gameId').limit(1) //get the highest number roundId and add 1 to it
    .exec(function (err, result) {
        if (err) logger.log(err);
        if (result === null){
            callback(0);
        }
        else{
            logger.log("result", result);
            callback(result.gameId);
        }
    });
};

我建议您使用自动增量mongoose插件,类似这样的东西

var mongoose = require('mongoose');
var autoIncrement = require('mongoose-auto-increment');

var connection = mongoose.createConnection("mongodb://localhost/db");

autoIncrement.initialize(connection);

var GameSchema = {
    "gameId":       {type: Number},
    "gameNickname": {type: String}
}

GameSchema.plugin(autoIncrement.plugin, { model: 'Game', field: 'gameId' });

mongoose.model('Game', GameSchema);
之后,您可以使用autoinc保存游戏,例如:

var Game=mongoose.model('Game')

执行此代码后,您应该有如下内容:

{
    _id:          "555d83d5bb0d4e3c352d896f",
    gameNickname: "nickname",
    gameId:        1
}

太棒了,我没听说过。它工作得很好。谢谢
{
    _id:          "555d83d5bb0d4e3c352d896f",
    gameNickname: "nickname",
    gameId:        1
}