I can’t find a way to set a field with type ObjectId to null after giving it a value
Exemple :
UserModel.ts
<code>const UserSchema = new Schema({
userId: {type: String, required: true}
guild: {type: Schema.Types.ObjectId, ref: "guilds", default: null}
});
type User = InferSchemaType<typeof UserSchema>;
export default model<User>("users", UserSchema);
</code>
<code>const UserSchema = new Schema({
userId: {type: String, required: true}
guild: {type: Schema.Types.ObjectId, ref: "guilds", default: null}
});
type User = InferSchemaType<typeof UserSchema>;
export default model<User>("users", UserSchema);
</code>
const UserSchema = new Schema({
userId: {type: String, required: true}
guild: {type: Schema.Types.ObjectId, ref: "guilds", default: null}
});
type User = InferSchemaType<typeof UserSchema>;
export default model<User>("users", UserSchema);
When my user join a guild i can simply do
index.ts
<code>import userSchema from ./UserModel.ts
const user = await userSchema.findOne(query);
user.guild = // a guild object id (_id)
await user.save()
</code>
<code>import userSchema from ./UserModel.ts
const user = await userSchema.findOne(query);
user.guild = // a guild object id (_id)
await user.save()
</code>
import userSchema from ./UserModel.ts
const user = await userSchema.findOne(query);
user.guild = // a guild object id (_id)
await user.save()
But when my user want to leave one I can’t set it back to null
index.ts
<code>import userSchema from ./UserModel.ts
const user = await userSchema.findOne(query);
user.guild = null
await user.save()
</code>
<code>import userSchema from ./UserModel.ts
const user = await userSchema.findOne(query);
user.guild = null
await user.save()
</code>
import userSchema from ./UserModel.ts
const user = await userSchema.findOne(query);
user.guild = null
await user.save()
I get this error -> Type 'null' is not assignable to type 'ObjectId'
Is it possible or a limitation of mongoose ?
I’ve tried to infer null or undefined to the guild field
UserModel.ts
<code>const UserSchema = new Schema({
userId: {type: String, required: true}
guild: {type: Schema.Types.ObjectId, ref: "guilds", default: null}
});
type Hunter = InferSchemaType<typeof hunterSchema> & {
guild: Types.ObjectId | null | undefined;
};
export default model<User>("users", UserSchema);
</code>
<code>const UserSchema = new Schema({
userId: {type: String, required: true}
guild: {type: Schema.Types.ObjectId, ref: "guilds", default: null}
});
type Hunter = InferSchemaType<typeof hunterSchema> & {
guild: Types.ObjectId | null | undefined;
};
export default model<User>("users", UserSchema);
</code>
const UserSchema = new Schema({
userId: {type: String, required: true}
guild: {type: Schema.Types.ObjectId, ref: "guilds", default: null}
});
type Hunter = InferSchemaType<typeof hunterSchema> & {
guild: Types.ObjectId | null | undefined;
};
export default model<User>("users", UserSchema);
New contributor
Hezaerd is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.