Question: How can I delete an empty array from database?
I currently have a schema definition like this:
const PeopleSchema = new SimpleSchema({
userId: { type: String },
interests: { type: Array, optional: true },
'interests.$': { type: String, optional: true },
});
If the interests field comes with values, it should save the array but if the interests field is an empty array, it should not store it in the database (remove the field completely). I do this with strings perfectly but I cant get it to work with Arrays. Does anyone know how I could do this?
Thank you for submitting this issue!
We, the Members of Meteor Community Packages take every issue seriously. Our goal is to provide long-term lifecycles for packages and keep up with the newest changes in Meteor and the overall NodeJs/JavaScript ecosystem.
However, we contribute to these packages mostly in our free time. Therefore, we can't guarantee you issues to be solved within certain time.
If you think this issue is trivial to solve, don't hesitate to submit a pull request, too! We will accompany you in the process with reviews and hints on how to get development set up.
Please also consider sponsoring the maintainers of the package. If you don't know who is currently maintaining this package, just leave a comment and we'll let you know
@juanpmd this should be solvable using minCount set to 1 (see minCount/maxCount) when interests is set:
const PeopleSchema = new SimpleSchema({
userId: { type: String },
interests: {
type: Array,
optional: true,
minCount () {
if (this.isSet && this.value) {
return 1
}
}
},
'interests.$': { type: String, optional: true },
});
Thank you @jankapunkt for your reply. Sadly this doesnt work. I tried it and I get the error message:
sanitizedError: errorClass [Error]: You must specify at least 1 values in peoples updateAsync [400]