Skip to content

Commit

Permalink
feat: allow setting array default value to null
Browse files Browse the repository at this point in the history
Fix #6691
  • Loading branch information
vkarpov15 committed Jul 2, 2024
1 parent 1a0cda7 commit 02afe2b
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
6 changes: 3 additions & 3 deletions docs/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ const Kitten = connection.model('Kitten', kittySchema);

<a class="anchor" href="#array-defaults">**Q**</a>. How can I change mongoose's default behavior of initializing an array path to an empty array so that I can require real data on document creation?

**A**. You can set the default of the array to a function that returns `undefined`.
**A**. You can set the default of the array to `undefined`.

```javascript
const CollectionSchema = new Schema({
Expand All @@ -329,13 +329,13 @@ const CollectionSchema = new Schema({

<a class="anchor" href="#initialize-array-path-null">**Q**</a>. How can I initialize an array path to `null`?

**A**. You can set the default of the array to a function that returns `null`.
**A**. You can set the default of the array to [`null`](https://masteringjs.io/tutorials/fundamentals/null).

```javascript
const CollectionSchema = new Schema({
field1: {
type: [String],
default: () => { return null; }
default: null
}
});
```
Expand Down
2 changes: 1 addition & 1 deletion lib/schema/array.js
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ function SchemaArray(key, cast, options, schemaOptions) {
fn = typeof defaultArr === 'function';
}

if (!('defaultValue' in this) || this.defaultValue !== void 0) {
if (!('defaultValue' in this) || this.defaultValue != null) {
const defaultFn = function() {
// Leave it up to `cast()` to convert the array
return fn
Expand Down

0 comments on commit 02afe2b

Please sign in to comment.