Maison > base de données > MongoDB > Éviter les entrées en double dans MongoDB ?

Éviter les entrées en double dans MongoDB ?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2023-08-29 08:29:13
avant
1651 Les gens l'ont consulté

避免 MongoDB 中出现重复条目​​?

Pour éviter les entrées en double dans MongoDB, vous pouvez utiliser createIndex(). La syntaxe est la suivante -

db.yourCollectionName.createIndex({"yourFieldName":1},{unique:true});
Copier après la connexion

Implémentons la syntaxe ci-dessus. La requête pour éviter les entrées en double dans MongoDB est la suivante -

> db.avoidDuplicateEntriesDemo.createIndex({"UserName":1},{unique:true});
{
   "createdCollectionAutomatically" : true,
   "numIndexesBefore" : 1,
   "numIndexesAfter" : 2,
   "ok" : 1
}
Copier après la connexion

Insérez maintenant quelques enregistrements dans la collection ci-dessus. La requête pour insérer un enregistrement est la suivante -

> db.avoidDuplicateEntriesDemo.insertOne({"UserName":"John"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c90e1824afe5c1d2279d697")
}
Copier après la connexion

Chaque fois que vous essayez d'insérer à nouveau le même enregistrement, vous obtiendrez une erreur -

> db.avoidDuplicateEntriesDemo.insertOne({"UserName":"John"});
2019-03-19T18:03:08.465+0530 E QUERY [js] WriteError: E11000 duplicate key error collection: test.avoidDuplicateEntriesDemo index: UserName_1 dup key: { : "John" } :
WriteError({
   "index" : 0,
   "code" : 11000,
   "errmsg" : "E11000 duplicate key error collection: test.avoidDuplicateEntriesDemo index: UserName_1 dup key: { : \"John\" }",
   "op" : {
      "_id" : ObjectId("5c90e1844afe5c1d2279d698"),
      "UserName" : "John"
   }
})
WriteError@src/mongo/shell/bulk_api.js:461:48
Bulk/mergeBatchResults@src/mongo/shell/bulk_api.js:841:49
Bulk/executeBatch@src/mongo/shell/bulk_api.js:906:13
Bulk/this.execute@src/mongo/shell/bulk_api.js:1150:21
DBCollection.prototype.insertOne@src/mongo/shell/crud_api.js:252:9
@(shell):1:1
Copier après la connexion

Insérons un autre enregistrement. La requête est la suivante -

> db.avoidDuplicateEntriesDemo.insertOne({"UserName":"Carol"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c90e18d4afe5c1d2279d699")
}
Copier après la connexion

Affichez tous les documents de la collection à l'aide de la méthode find(). La requête est la suivante -

> db.avoidDuplicateEntriesDemo.find();
Copier après la connexion

Ce qui suit est le résultat -

{ "_id" : ObjectId("5c90e1824afe5c1d2279d697"), "UserName" : "John" }
{ "_id" : ObjectId("5c90e18d4afe5c1d2279d699"), "UserName" : "Carol" }
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal