

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# \$1nin
<a name="nin"></a>

L'`$nin`opérateur est utilisé pour faire correspondre des valeurs qui ne figurent pas dans le tableau spécifié. Il s'agit de l'inverse de l'`$in`opérateur, qui correspond aux valeurs figurant dans le tableau spécifié.

La version 2.0 du planificateur a ajouté le support des index pour`$nin`.

**Paramètres**
+ `field`: Le champ à vérifier.
+ `array`: le tableau de valeurs à comparer.

 

**Dollar (`$`) dans les noms de champs**

Consultez [Dollar (\$1) et point (.) dans les noms de champs](functional-differences.md#functional-differences-dollardot) les limites relatives à l'interrogation de champs `$` préfixés `$nin` dans des objets imbriqués.

## Exemple (MongoDB Shell)
<a name="nin-examples"></a>

L'exemple suivant montre comment utiliser l'`$nin`opérateur pour rechercher des documents dont le `category` champ n'est pas égal à « Fiction » ou « Mystère ».

**Création d'exemples de documents**

```
db.books.insertMany([
  { title: "The Great Gatsby", author: "F. Scott Fitzgerald", category: "Fiction" },
  { title: "To Kill a Mockingbird", author: "Harper Lee", category: "Fiction" },
  { title: "The Girl on the Train", author: "Paula Hawkins", category: "Mystery" },
  { title: "The Martian", author: "Andy Weir", category: "Science Fiction" },
  { title: "The Alchemist", author: "Paulo Coelho", category: "Philosophy" }
])
```

**Exemple de requête**

```
db.books.find({
  category: {
    $nin: ["Fiction", "Mystery"]
  }
})
```

**Sortie**

```
[
  {
    _id: ObjectId('...'),
    title: 'The Martian',
    author: 'Andy Weir',
    category: 'Science Fiction'
  },
  {
    _id: ObjectId('...'),
    title: 'The Alchemist',
    author: 'Paulo Coelho',
    category: 'Philosophy'
  }
]
```

## Exemples de code
<a name="nin-code"></a>

Pour afficher un exemple de code d'utilisation de la `$nin` commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :

------
#### [ Node.js ]

```
const { MongoClient } = require('mongodb');

async function findBooksNotInCategories(categories) {
  const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false');
  const db = client.db('test');
  const books = await db.collection('books').find({
    category: {
      $nin: categories
    }
  }).toArray();
  console.log(books);
  client.close();
}

findBooksNotInCategories(['Fiction', 'Mystery']);
```

------
#### [ Python ]

```
from pymongo import MongoClient

def find_books_not_in_categories(categories):
    client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false')
    db = client['test']
    books = list(db.books.find({
        'category': {
            '$nin': categories
        }
    }))
    print(books)
    client.close()

find_books_not_in_categories(['Fiction', 'Mystery'])
```

------