This is the format of my document:
{
_id: some id,
name: 'some name',
versions: []
}
In the versions field I store objects like {v: '2.5', count: 5} where count holds the number of times a version is in used.
What is the simplest way to do the following?
- Insert a new object inside the
versionsarray if it doesn’t exist - Ff a particular version exists inside the
versionsarray then increment itscount
Simplest way being should be,
This will increment your count if version is exist, but as MongoDB documentation says,
$operator cannot be mixed with upsert, so above query won’t result in insert if{versions.v:'some_version'}fails.Below are JIRA tickets for supporting upsert with $. You can vote and watch these issue.
Upsert with $-positional operator can create bad documents
Support $ positional operator with an upsert