$ifNull - Amazon DocumentDB

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.

$ifNull

L'$ifNullopérateur est utilisé pour renvoyer une valeur spécifiée si l'expression d'entrée est nulle ou non définie. Cet opérateur peut être utile dans les scénarios où vous souhaitez fournir une valeur par défaut ou gérer null/undefined des cas.

Paramètres

  • expression: expression à évaluer.

  • replacement: valeur à renvoyer si l'<expression>évaluation est nulle ou indéfinie.

Exemple (MongoDB Shell)

L'exemple suivant illustre l'utilisation de l'$ifNullopérateur pour fournir une valeur par défaut lorsque le name champ est nul ou non défini.

Création d'exemples de documents

db.users.insertMany([ { _id: 1, name: "John" }, { _id: 2, name: null }, { _id: 3 } ]);

Exemple de requête

db.users.aggregate([ { $project: { _id: 1, name: { $ifNull: ["$name", "No Name"] } } } ]);

Sortie

[ { "_id": 1, "name": "John" }, { "_id": 2, "name": "No Name" }, { "_id": 3, "name": "No Name" } ]

Exemples de code

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

Node.js
const { MongoClient } = require('mongodb'); async function example() { 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 collection = db.collection('users'); const pipeline = [ { $project: { _id: 1, name: { $ifNull: ["$name", "No Name"] } } } ]; const cursor = await collection.aggregate(pipeline); await cursor.forEach(doc => { console.log(doc); }); await client.close(); } example();
Python
from pymongo import MongoClient def example(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client.test collection = db.users pipeline = [ { "$project": { "_id": 1, "name": { "$ifNull": ["$name", "No Name"] } } } ] result = collection.aggregate(pipeline) for doc in result: print(doc) client.close() example()