graphql-compose / graphql-compose/graphql-compose-mongoose

removeMany throw an error if no items to delete with mongoose v6

Open
#415 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
706
Forks
98
PR merge metrics
No merged PRs in 30d

Description

### Mongoose version

6.6.1

### Node.js version

16

### MongoDB server version

5

### Description

In case of a removeMany with a filter query that returns no items, with mongoose v5 I got a success with `deletedCount: 0`. But with mongoose v6 I get an Error with the message `{"acknowledged":true,"deletedCount":0}`.

I have investigated and here is the issue: https://github.com/graphql-compose/graphql-compose-mongoose/blob/919f28a96f5c55244f3169f3fb42ca8fef1e66e1/src/resolvers/removeMany.ts#L95
`await beforeQueryHelper(resolveParams)` returns:
- With mongoose v5: `{ n: 0, ok: 1, deletedCount: 0 }`.
- With mongoose v6: `{"acknowledged":true,"deletedCount":0}`

### Steps to Reproduce

With mongoose V6, do a mutation with a filter that match no items like
```
await client.mutate({
variables: {ids: []},
mutation: gql`
mutation yourEntity($ids: [String]!) {
removeMany(filter: {
_operators: {
_id: { in: $ids }
}
}) {
numAffected
}
}
`
})
```

### Expected Behavior

I expect the same behaviour than with mongoose v5: getting a success response `{ n: 0, ok: 1, deletedCount: 0 }`

They mentioned the change in mongoose v6 in the doc here: https://mongoosejs.com/docs/migrating_to_6.html#mongodb-driver-40

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.