MongoDB $ addtoset

MongoDB $ addtoset
L'opérateur $ addtoset fait partie de ces opérateurs de mise à jour de l'arraie que MongoDB propose pour mettre à jour la valeur du champ de tableau dans les documents. L'opérateur AddToset $ a nécessité des entrées uniques à ajouter ou à ajouter dans le champ de tableau spécifié. Si une valeur est déjà présente dans le tableau donné, alors le $ addToset récupère le tableau exact sans modification. L'opérateur $ addtoset doit s'assurer qu'un tableau ne contiendra aucun éléments en double lorsqu'il est mis à jour, mais il est possible que l'ordre des articles d'un tableau change une fois une valeur ajoutée.

Comment utiliser l'opérateur MongoDB $ addtoset?

L'opérateur $ addtoset est utilisé dans la méthode Update () de MongoDB. L'opérateur $ addtoset saisit le paramètre «champ» et «l'ajout». Le «champ» indique la colonne du document à mettre à jour. Le «ajout» est le paramètre qui est attribué la valeur à insérer dans le tableau au champ correspondant. Avant d'utiliser l'opérateur $ addtoset dans la requête MongoDB, nous devons établir la collection. Ici, nous avons une collection MongoDB de «cours» auxquels nous avons appliqué la requête insertmany () pour ajouter les documents suivants.

db.Cours.insertmany ([

"_id": 1,
"Field": "It",
"Cours": ["Web Development", "Database", "Python"],
"Crédités": [5, 2, 7]
,

"_id": 2,
"Field": "CS",
"Cours": ["Python", "Networking", "Computing"],
"Crédités": [8, 4, 2]
,

"_id": 3,
"Field": "SE",
"Cours": ["Science des données", "Python", "IBM"],
"Crédités": [2, 9, 5]

])

Le résultat de l'ajout de documents à la collection «cours» est présenté ci-dessous.

reconnue: vrai, insertEDIDS: '0': 1, '1': 2, '2': 3

Exemple n ° 1: requête de l'opérateur $ addtoset dans MongoDB pour ajouter la valeur dans un champ de tableau

Ici, nous ajoutons la nouvelle valeur sur le terrain en utilisant l'opérateur de $ addToset. Dans la requête MongoDB, nous avons utilisé la méthode Update () sur la collection «Cours». La méthode Update () saisit en outre la condition "Field": "CS" avant l'opérateur $ addtoset. Tout d'abord, le document sera recherché qui est défini avec la valeur «CS» contre la colonne «champ» de la collection. Lorsque le document sera égalé, l'opérateur $ addToset procèdera à l'opérateur de l'ajout de la valeur. Nous avons fourni à l'opérateur AddToset $ les «cours» de champ de tableau pour ajouter un nouvel élément de valeur «Comptes» de la table de valeur «Comptes».

db.Cours.Mise à jour ("Field": "CS", $ addToset: "Cours": "Accounts")

La sortie montre que le nouvel élément de tableau «comptes» est annexé sur le terrain «cours».


Reconnu: vrai,
InsertEDID: NULL,
MatchCount: 1,
ModifiedCount: 1,
UpsertedCount: 0

Nous avons examiné notre collection pour confirmer la modification. Les «cours» de champ de tableau sont modifiés avec succès avec la nouvelle valeur «Comptes».


_id: 2,
Champ: «CS»,
Cours: [«python», «réseautage», «informatique», «comptes»],
Crédits: [8, 4, 2]

Exemple n ° 2: requête de l'opérateur $ addtoset dans MongoDB pour ajouter un nouveau champ

Dans la requête ci-dessus, l'opérateur de $ addToset est utilisé pour ajouter la nouvelle valeur dans le champ existant. De plus, nous pouvons insérer le nouveau champ dans le document en utilisant l'opérateur $ addToset dans la méthode Update (). Laissez la requête MongoDB suivante. Nous avons défini la méthode Update () où l'expression «« _id »: 2» est fournie pour correspondre à ce document particulier. Ensuite, nous avons attribué l'opérateur $ addToset pour ajouter le nouveau champ avec la nouvelle valeur. Ici, nous avons ajouté le «professeur» sur le terrain du tableau qui n'existe pas dans les documents de la collection «cours». Le domaine des «enseignants» est affecté à un éventail de noms des enseignants.

db.Cours.mise à jour(
"_id": 2,
$ addToset: "Teachers": ["Mr Sam", "Mme Alice"]
)

Le «ModifiedCount: 1» dans la sortie suivante montre que le document est mis à jour avec le nouveau champ «Teachers» et les valeurs du tableau.


Reconnu: vrai,
InsertEDID: NULL,
MatchCount: 1,
ModifiedCount: 1,
UpsertedCount: 0

Maintenant, lorsque les documents sont vérifiés, il est apparu avec les nouveaux résultats de mise à jour comme suit:


_id: 2,
Champ: «CS»,
Cours: [«python», «réseautage», «informatique», «comptes»],
Crédits: [8, 4, 2, 7, 3],
Enseignants: [[«M. Sam», «Mme Alice»]]

Exemple n ° 3: requête de l'opérateur $ addtoset dans MongoDB pour ajouter un tableau dans le tableau existant

De plus, nous pouvons ajouter un nouveau tableau entier au tableau déjà présent en utilisant l'opérateur $ addToset. L'ensemble du tableau est ajouté comme un tableau séparé. Ici, nous avons donné une requête à cette déclaration. Nous avons une méthode Update () sur laquelle nous avons attribué une condition "_id": 3 comme premier paramètre. Ainsi, le document avec le numéro "_id" "3" sera égalé à la condition de mise à jour, puis le paramètre suivant continuera. Le paramètre suivant de la méthode Update () est la méthode «$ addtoset» pour ajouter le tableau au tableau existant. Nous avons spécifié le tableau «[3, 1, 2]» sur le terrain «crédits». Ce tableau sera ajouté en tant que tableau séparé dans la table existante du champ "crédits".

db.Cours.mise à jour(
"_id": 3,
$ addtoset: "crédithours": [3, 1, 2]
)

Les informations suivantes indiquent que le tableau est ajouté au tableau actuel:


Reconnu: vrai,
InsertEDID: NULL,
MatchCount: 1,
ModifiedCount: 1,
UpsertedCount: 0

Le document ci-dessous est mis à jour avec la nouvelle modification que nous avons apportée.


_id: 3,
Champ: 'SE',
Cours: [«Science des données», «Python», «IBM»],
Crédités: [2, 9, 5, [3, 1, 2]]

Exemple n ° 4: requête de l'opérateur $ addtoset dans MongoDB pour ajouter plusieurs valeurs

Le $ addToset nous permet d'ajouter plus d'une valeur en même temps dans un tableau en prenant le $ chaque opérateur en tant que paramètre. Le $ chaque opérateur est utilisé pour ajouter plusieurs entrées à un tableau fourni. Ici, nous avons donné une requête où nous devons satisfaire la condition «« _id »: 2» de la méthode de mise à jour (). Ensuite, nous avons l'opérateur $ addToset où nous avons utilisé le $ chaque opérateur pour ajouter les deux valeurs «7» et «3» sur le terrain «crédits».

db.Cours.Update ("_id": 2, $ addtOset: "crédithours": $ chaque: [7,3]);

La requête ci-dessus exécutée affiche la sortie de confirmation qui indique que les valeurs sont insérées dans le document correspondant.


Reconnu: vrai,
InsertEDID: NULL,
MatchCount: 1,
ModifiedCount: 1,
UpsertedCount: 0

Les deux éléments du tableau «7» et «3» sont annexés dans le champ de tableau «crédits».


_id: 2,
Champ: «CS»,
Cours: [«python», «réseautage», «informatique», «comptes»],
Crédits: [8, 4, 2, 7, 3]

Exemple n ° 5: requête de l'opérateur $ addtoset dans MongoDB pour ajouter la valeur existante

Lorsque la valeur du tableau est déjà présente, nous essayons d'insérer à nouveau cette valeur dans le champ, l'opérateur $ addsetto ne fait rien. Pour le dire autrement, $ addToset n'ajoute une valeur que si l'on n'existe pas déjà. Là, nous avons donné une requête dans la coquille du MongoDB où nous avons utilisé la méthode Update (). À l'intérieur de la méthode Update (), nous avons passé la condition que le document a le «_id» égal à «1». Après cela, nous avons appelé l'opérateur $ addToset qui suivi le terrain «cours» avec la valeur de paramètre «Ajout» «base de données». La «base de données» existe déjà dans le document spécifié afin que l'opérateur $ addToset ne mette pas à jour cette valeur.

db.Cours.mise à jour(
_id: 1,
$ addtoset: "cours": "base de données"
)

Nous pouvons voir que l'option «ModifiedCount» a une valeur «0» qui montre que le document n'est pas modifié.


Reconnu: vrai,
InsertEDID: NULL,
MatchCount: 1,
ModifiedCount: 0,
UpsertedCount: 0

Le document correspondant est également vérifié ci-dessous pour afficher que les valeurs déjà existantes ne peuvent pas être ajoutées à nouveau par l'opérateur de $ addToset.


_id: 1,
Champ: «It»,
Cours: [«DÉVELOPPEMENT Web», «base de données», «Python»],
Crédits: [5, 2, 7, 3]

Conclusion

L'article concerne la discussion de l'opérateur MongoDB $ addtoset. Nous avons vu l'opération $ addToset dans la requête de mise à jour MongoDB. Le premier exemple est à $ addToset Operator Ajout La valeur unique dans le tableau du document. Nous avons ensuite ajouté le champ de non-existence avec l'opérateur de $ addtoset. Le nouveau tableau est également annexé au tableau déjà spécifié. Après cela, nous avons ajouté le tableau avec plusieurs entrées, puis nous avons tenté d'insérer la valeur en double dans le tableau avec l'opérateur $ addToset.