j'ai une collection en MongoDB avec des documents de la forme:Erreur d'analyse dans MongoDB db, insérez la collection avec index unique
{
"user": "user1",
"email: "[email protected]",
}
Lorsque les champs "utilisateur" et "e-mail" sont uniques. Je souhaite insérer un nouvel utilisateur dans la collection, tout en vérifiant l'unicité des deux valeurs. Je peux faire un insert en golang avec mgo comme ceci:
session.SetSafe(&mgo.Safe{}) // ensure mgo waits for errors
user := struct{
string `bson:"user"`
string `bson:"email"`
}{
"user1",
"[email protected]"
}
err := users.Insert(user) // where user is type *mgo.Collection
Si j'imprimer err
il émet insertDocument :: caused by :: 11000 E11000 duplicate key error index: kails.users.$name_1 dup key: { : "user1" }
est-il un moyen idiomatiques d'utiliser cette erreur pour trouver des valeurs était pas unique? , sinon les deux? (ou y a-t-il d'autres étapes nécessaires?). L'analyse de la chaîne à l'aide d'une expression rationnelle est ... erronée.
S'il n'est pas possible d'utiliser l'erreur pour trouver si elle n'est pas unique, existe-t-il des alternatives à une requête "$ ou" (vérifiez pour unique) + insert?
J'ai lu le mgo documentation, j'espère que je n'ai rien manqué d'important.
Comment avez-vous pu faire les champs unique? – Peres
Où avez-vous mentionné votre champ unique 'Email id' – muthukumar