我有一个名为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 。
可能是什么问题?
答案 0 :(得分:0)
问题是我在诺言的解决功能中做错了什么。我在做类似的事情
res.status(200).send({})
。因此,无论执行了什么查询,我回到客户端的所有内容都是{}。