猫鼬发现不返回结果mongo

时间:2018-08-07 10:44:56

标签: node.js mongodb mongoose

我有一个名为getTeamEmployees的方法,该方法应获取teamId等于方法参数teamId的雇员。看起来像这样:

public getTeamEmployees(teamId: number): Promise<any> {
    return MDBDatabaseController.EmployeeModel.find({ teamId: teamId }).exec();
}

我启用了猫鼬调试功能,并且在控制台中可以看到执行猫鼬查询的内容。这是查询:

employees.find({ teamId: 13 }, { fields: {} })

如果我使用mongo shell执行此操作,则会得到以下信息:

    db.employees.find({ teamId: 13 }, { fields: {} })
Error: error: {
    "ok" : 0,
    "errmsg" : ">1 field in obj: {}",
    "code" : 2,
    "codeName" : "BadValue"
}

如果我在没有{字段:{}}部分的情况下执行它,一切正常。它给了我5条结果。

我将Mongoose与Typescript一起使用,并且我的模型是这样实例化的:

MDBDatabaseController.EmployeeModel = model<IEmployee>('Employee', EmployeeSchema.schema);

其中 IEmployee 是扩展 mongoose.Document 的接口,并且具有名为 teamId 的字段,该字段的类型为 Number 大写字母N。

EmployeeSchema 是一个类,该类具有名为“ schema”的静态属性,该属性等于 mongoose.Schema 的新实例,其具有名为 teamId的属性类型为 Number

可能是什么问题?

1 个答案:

答案 0 :(得分:0)

问题是我在诺言的解决功能中做错了什么。我在做类似的事情 res.status(200).send({}) 。因此,无论执行了什么查询,我回到客户端的所有内容都是{}。