我将typeorm与MongoDB一起使用。当我使用以下语法按Id搜索文档时const manager=getMongoManager();const user=await manager.findone(user,{userId});
我得到了未定义的结果,当我使用const manager=getMongoManager();const user=await manager.findone(user,{});
我得到了第一个语法中需要的userId的结果。
此外,相同的语法适用于ID以外的任何其他标准。
模型中Id的声明为:@objectidColumn({name:“_Id”})@isnotempty()public userid:objectid;
目前,数据库中只有一个用户具有我搜索的userId。
问题可能出在哪里?如何解决这个问题?
当您执行Await Manager.Findone(User,{});
时,您基本上是在选择用户集合中的第一个条目,这就是您得到所需用户的原因。
您需要做的是通过_id
字段进行查询(如果有的话),或者创建一个自定义字段进行查询,例如:
@Entity()
export class UserEntity
{
@ObjectIdColumn()
_id: string;
@PrimaryColumn()
id: string;
@Column()
public name: string;
}
这样,您就可以执行类似以下的查询:Await Manager.Findone(User,{_id:
或等待Manager.Findone(用户,{id: