meteor-collection2 icon indicating copy to clipboard operation
meteor-collection2 copied to clipboard

Using $pop to remove an array item causes an error

Open Shelagh-Lewins opened this issue 4 years ago • 2 comments

I have a schema which defines an array like this:

'myArray': {
	'type': Array,
},
'myArray.$': {
	'type': Date,
},

I'm trying to remove an element from the end of the array like this:

MyCollection.update({ _id }, { $pop: { myArray: 1 }})

This gives a server error:

MongoError: Expected a number in: myArray:

If I bypass Collection 2 like this, the operation succeeds:

MyCollection.update({ _id }, { $pop: { myArray: 1 }}, { 'bypassCollection2': true })

So it looks like there is some bug with collection2 and the $pop operation on arrays?

Shelagh-Lewins avatar Dec 23 '19 14:12 Shelagh-Lewins

~~I believe the culprit is this line in simpl-schema where it cleans $pop operator fields and thus changes 1 to a date.~~

So, I did a little more digging and found out that the typeValidator returns an error so it gets converted to its respective value which is a date.

harryadel avatar Dec 28 '19 16:12 harryadel

:crossed_fingers: :grimacing:

harryadel avatar Dec 28 '19 18:12 harryadel