使用查询查询返回结果mongoose v4

时间:2016-11-19 01:32:28

标签: javascript node.js mongodb mongoose

我已经离开我的代码超过一年并运行了NPM安装,因为它显然已经改变了:)

我的查询

var mongoose = require('mongoose'),
    Clubs = mongoose.model('Clubs');

getNorsemanClubs: function(passData){
    return new Promise(function (resolve) {
        Clubs.find({norseman:true}, 'name teamID date norseman eleven').sort({ eleven : 'asc'})
            .then(function(clubs){
                console.info(clubs);
                passData.clubs = clubs;
                resolve(passData);
            });
    })
}

console.info(俱乐部);输出

enter image description here

在这里你可以看到它正在返回模型,而不是俱乐部的结果。

我的模特

var mongoose = require('mongoose')
    , Schema = mongoose.Schema;

/**
 * User Schema
 */

var ClubsScheme = new Schema({
    name: String,
    teamID: { type: String, default: null },
    date: { type: Date, default: Date.now},
    norseman: {type: Boolean, default: false},
    eleven: Number
})

mongoose.model('Clubs', ClubsScheme);

如何让它返回俱乐部列表?

俱乐部桌上摆满了比赛数据。但我以前从'name teamID date norseman eleven'获得了回报,现在我得到了:\

的回报

**使用exec()

enter image description here

1 个答案:

答案 0 :(得分:1)

您需要执行find mongoose查询方法,方法是使用exec()方法追踪您的查询,以便在您的列表值已解决时返回承诺,因此请更改以下一行:

Clubs.find({norseman:true}, 'name teamID date norseman eleven').sort({ eleven : 'asc'})

为:

Clubs.find({norseman:true}, 'name teamID date norseman eleven').sort({ eleven : 'asc'}).exec()