Даже если я создаю данные в объектах, которые я создал с помощью Typeorm, как «nullable: false», я могу сохранить их как «null»

#mongodb #typescript #typeorm

#mongodb #typescript #typeorm

Вопрос:

Редактировать: когда я использую sqlite в качестве базы данных, это работает нормально. Я думаю, что все дело в интеграции typeorm с mongodb

Прежде всего, извините за грамматические ошибки

у меня есть объект, подобный этому

 @Entity()
export class Entity extends BaseEntity {
    @PrimaryColumn({ unique: true })
    id: string;

    @ObjectIdColumn()
    _id: ObjectID;

    @Column({ nullable: false, default: 0 })
    premium: number;

    @CreateDateColumn({ type: "timestamp" })
    createdAt: number;

    @UpdateDateColumn({ type: "timestamp" })
    updatedAt: number;
}
  

но когда я пытаюсь создать подобные данные, они сохраняются, но не должны

 const model = Entity.create();
await <Typeorm.Connection>.mongoManager.save(model);
  

Короче говоря, «null» можно сохранить, даже если я скажу «@PrimaryColumn()» или сделаю «nullable: false»

спасибо за всю помощь: 3

Комментарии:

1. Что вы подразумеваете под «могут быть сохранены»? Вы имеете в виду, что они на самом деле сохраняются или что TypeScript не выдает ошибку?

2. я имею в виду, что это сохраняет, но не выдает никакой ошибки, вот результат: imgur.com/aJoOmSE

3. Таким образом, идентификатор генерируется автоматически.

4. Если я не укажу значение «id» и значение «premium», будут сохранены только данные по умолчанию «_id», «createdAt» и «updatedAt», но это должно выдать ошибку

5. Ну, premium имеет значение по умолчанию, так что это абсолютно должно сработать. Что касается _id , то это означает, что вы вставляете новую запись, а не сохраняете существующую запись.