Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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
Node.js Mongoose find不返回mongo所返回的结果_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js Mongoose find不返回mongo所返回的结果

Node.js Mongoose find不返回mongo所返回的结果,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有一个名为getTeamEmployees的方法,它应该获取teamId等于方法参数teamId的员工。看起来是这样的: public getTeamEmployees(teamId: number): Promise<any> { return MDBDatabaseController.EmployeeModel.find({ teamId: teamId }).exec(); } MDBDatabaseController.EmployeeModel = model

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

public getTeamEmployees(teamId: number): Promise<any> {
    return MDBDatabaseController.EmployeeModel.find({ teamId: teamId }).exec();
}
MDBDatabaseController.EmployeeModel = model<IEmployee>('Employee', EmployeeSchema.schema);
如果我使用mongo shell执行此操作,我会得到以下结果:

    db.employees.find({ teamId: 13 }, { fields: {} })
Error: error: {
    "ok" : 0,
    "errmsg" : ">1 field in obj: {}",
    "code" : 2,
    "codeName" : "BadValue"
}
如果我在没有{fields:{}}部分的情况下执行它,一切都正常。它给了我5个结果

我将mongoose与typescript一起使用,我的模型实例化如下:

public getTeamEmployees(teamId: number): Promise<any> {
    return MDBDatabaseController.EmployeeModel.find({ teamId: teamId }).exec();
}
MDBDatabaseController.EmployeeModel = model<IEmployee>('Employee', EmployeeSchema.schema);
MDBDatabaseController.EmployeeModel=model('Employee',EmployeeSchema.schema);
其中,IEEMPLOYEE是一个扩展mongoose.Document的接口,它有一个名为teamId的字段,类型为Number大写字母N

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


有什么问题吗?

问题是我在承诺的解决功能中做错了什么。我在做类似的事情
res.status(200).send({})

. 因此,无论执行什么查询,我在客户端得到的都是{}。

看起来find方法在find查询中添加了{fields:{}}。值得检查您正在使用的mongoose版本。也可以尝试使用一个简单的模型类而不是静态属性。然后你就会知道罪犯的下落