I don't understand the behaviour of the command $exists.

I have two simple documents in the collection 'user':

```
/* 1 */
{
    "_id" : ObjectId("59788c2f6be212c210c73233"),
    "user" : "google"
}

/* 2 */
{
    "_id" : ObjectId("597899a80915995e50528a99"),
    "user" : "werty",
    "extra" : "very important"
}

```

I want to retrieve documents which contain the field "extra" and the value is not equal to 'unimportant':

The query:

```
db.getCollection('users').find(
{"extra":{$exists:true},"extra": {$ne:"unimportant"}}
)

```

returns both two documents. 

Also the query 

```
db.getCollection('users').find(
{"extra":{$exists:false},"extra": {$ne:"unimportant"}}
)

```

returns both two documents. 

It seems that $exists (when used with another condition on the same field) works like an 'OR'.
What I'm doing wrong? Any help appreciated.

I used mongodb 3.2.6 and 3.4.9

I have seen [Mongo $exists query does not return correct documents](https://stackoverflow.com/questions/9443252/mongo-exists-query-does-not-return-correct-documents)
but i haven't sparse indexes.