node.js - Nestjs Mongodb 总是返回空数组
问题描述
我正在尝试创建一个连接到 mongodb 的简单 nestjs 项目。我遵循了nestjs 的官方文档,但使用“用户”集合连接到我自己的数据库。当我尝试调用端点来查找所有用户时,结果始终为空,即使数据库包含记录。
对导致问题的原因有任何想法吗?
// user.schema.ts
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { Document } from 'mongoose';
export type UserDocument = User & Document;
export class Credential {
@Prop()
username: string;
@Prop()
password: string;
}
export class NameDetails {
@Prop()
firstName: string;
@Prop()
lastName: string;
}
export class ContactDetails {
@Prop()
email: string;
@Prop()
phoneNumber: string;
}
@Schema()
export class User extends Document {
@Prop()
_id: string;
@Prop()
credential: Credential;
@Prop()
nameDetails: NameDetails;
@Prop()
contactDetails: ContactDetails;
}
export const UserSchema = SchemaFactory.createForClass(User);
// users.module.ts
import { Module } from '@nestjs/common';
import { UsersService } from './users.service';
import { UsersController } from './users.controller';
import { MongooseModule } from '@nestjs/mongoose';
import { User } from './entities/user.entity';
import { UserSchema } from 'src/schemas/user.schema';
@Module({
imports: [MongooseModule.forFeature([{ name: User.name, schema: UserSchema }])],
controllers: [UsersController],
providers: [UsersService]
})
export class UsersModule {}
// users.service.ts
import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { Model } from 'mongoose';
import { User, UserDocument } from 'src/schemas/user.schema';
@Injectable()
export class UsersService {
constructor(@InjectModel(User.name) private userModel: Model<UserDocument>) {}
async findAll(): Promise<User[]> {
return await this.userModel.find().exec();
}
}
解决方案
就我而言,问题是我没有在 app.module.ts 中提供数据库名称我只是将 URI 传递给 mongodb 集群(不确定命名,如果我错了,请纠正我),每次你运行它在集群上创建了一个“测试”数据库的服务器(带有空集合,因此是空数组),您可以在 MongoDB Compass 中看到它。nestJS 文档也不提供数据库名称。
推荐阅读
- perl - 同时在 perl 脚本中运行多个作业
- listview - 刷新后 Xamarin 坏 ItemSource
- azure - 如何从 Azure Pipelines 下载构建工件?
- bash - 在终端和 bash 脚本中运行 docker exec 有什么区别
- ios - 如何在 Swift 4 和 Alamofire 中通过可编码解析 json 数据包括页码
- javascript - 如何在单击时同时更改图像和文本
- r - 在 read_excel R 中打开单元格范围
- linux - Asterisk 动态 Lua 拨号方案
- c# - NLog 条目到 .NET Core 2.2 中的 SQL Server
- javascript - 未捕获的引用错误 - 未定义 functionName