_id champ est réservé pour la clé primaire dans mongodb, et qui devrait être une valeur unique. Si vous ne définissez pas de quoi _id il va automatiquement remplir avec "MongoDB Id de l'Objet". Mais vous pouvez mettre des infos dans ce domaine.
Cela ne répond pas à how to set one of my fields as primary key, ex: je veux user_email comme la clé de l'utilisateur collections, mais comment définir ce champ comme clé unique et
Je trouve en fait c'est assez simple et facile à mettre en œuvre.
"La contrainte unique sur les index garantit que seul un document peut avoir une valeur d'un champ dans une collection. Pour fragmenté collections de ces indices ne peuvent pas faire valoir unique en raison d'insertion et de l'indexation des opérations locales de chaque fragment" --docs.mongodb.org/manual/tutorial/...
Dans mongodb _id champ est réservé pour la clé primaire. Mongodb utilisez une valeur ObjectId si vous ne définissez pas dans votre objet et de créer un index pour assurer la performance.
Mais vous pouvez mettre votre propre valeur unique pour _id et Mongodb l'utiliser au lieu de le faire pour vous. Et même si vous souhaitez utiliser plusieurs champ comme clé primaire, vous pouvez utiliser un objet:
{ _id :{ a :1, b:1}}
Juste être prudent lors de la création de ces id de la commande de touches (a et b dans l'exemple) des questions, si vous les échanger autour, il est considéré comme un objet différent.
Si vous penser comme SGBDR vous ne pouvez pas créer une clé primaire,par défaut de la clé primaire est _id.
Mais vous pouvez créer Index Unique. Exemple ci-dessous.
Lorsque vous essayez d'insérer une même user_id mongodb trow erreur d'écriture.
db.members.insert({'user_id':1,'name':'aarush'})
WriteResult({
"nInserted" : 0,
"writeError" : {
"code" : 11000,
"errmsg" : "E11000 erreur de clé en double de la collection: des étudiants.les membres de l'index: user_id_1 dup clé: { : 1.0 }"
}
})
Une façon de réaliser ce comportement est par la mise en valeur de _id (qui est réservé pour une clé primaire dans MongoDB) sur le terrain sur les champs personnalisés que vous désirez traiter comme clé primaire.
c'est à dire Si je veux employee_id comme clé primaire, puis au moment de la création d'un document dans MongoDB; attribuer _id valeur de même que celle de employee_id.
Vous pouvez également consulter ce lien et de l'auto-incrément de la _id champ.
Notez que lien-seules réponses sont découragés, de SORTE que les réponses devraient être le point final d'une recherche d'une solution (contre encore une autre escale de références, qui a tendance à devenir obsolètes au fil du temps). Veuillez considérer l'ajout d'un stand-alone synopsis ici, en gardant le lien comme référence.
Le lien est rompu, donc cette réponse est inutile
Downvoted, parce que la page de redirection: docs.mongodb.com/manual/crud qui ne mentionne ni "auto", ni "incrément".
C'est la syntaxe de la création de la clé primaire
db.< collection >.createIndex( < clé et l'indice de spécification du type>, {
unique: true } )
Prenons notre base de données de collection nommée étudiant et c'est document clé nommée student_id dont nous avons besoin pour faire une clé primaire. Ensuite, la commande doit être comme ci-dessous.
_id
champ est réservé pour la clé primaire dans mongodb, et qui devrait être une valeur unique. Si vous ne définissez pas de quoi_id
il va automatiquement remplir avec "MongoDB Id de l'Objet". Mais vous pouvez mettre des infos dans ce domaine.Informations supplémentaires: http://www.mongodb.org/display/DOCS/BSON
Espère que cela aide.
how to set one of my fields as primary key
, ex: je veux user_email comme la clé de l'utilisateur collections, mais comment définir ce champ comme clé unique etL'autre façon est de créer
Indexes
pour votre collection et assurez-vous qu'ils sont uniques.Vous pouvez en savoir plus sur la suite de lien
Je trouve en fait c'est assez simple et facile à mettre en œuvre.
Dans mongodb _id champ est réservé pour la clé primaire. Mongodb utilisez une valeur ObjectId si vous ne définissez pas dans votre objet et de créer un index pour assurer la performance.
Mais vous pouvez mettre votre propre valeur unique pour _id et Mongodb l'utiliser au lieu de le faire pour vous. Et même si vous souhaitez utiliser plusieurs champ comme clé primaire, vous pouvez utiliser un objet:
Juste être prudent lors de la création de ces id de la commande de touches (a et b dans l'exemple) des questions, si vous les échanger autour, il est considéré comme un objet différent.
Si vous penser comme SGBDR vous ne pouvez pas créer une clé primaire,par défaut de la clé primaire est _id.
Mais vous pouvez créer Index Unique. Exemple ci-dessous.
De sortie est ci-dessous.
{ "_id" : ObjectId("577f9cecd71d71fa1fb6f43a"), "user_id" : 1, "name" : "nanhe" }
{ "_id" : ObjectId("577f9d02d71d71fa1fb6f43b"), "nom" : "kumar" }
Lorsque vous essayez d'insérer une même user_id mongodb trow erreur d'écriture.
WriteResult({
"nInserted" : 0,
"writeError" : {
"code" : 11000,
"errmsg" : "E11000 erreur de clé en double de la collection: des étudiants.les membres de l'index: user_id_1 dup clé: { : 1.0 }"
}
})
Simples que vous pouvez utiliser
db.collectionName.createIndex({urfield:1},{unique:true});
Une façon de réaliser ce comportement est par la mise en valeur de
_id
(qui est réservé pour une clé primaire dans MongoDB) sur le terrain sur les champs personnalisés que vous désirez traiter comme clé primaire.c'est à dire Si je veux
employee_id
comme clé primaire, puis au moment de la création d'un document dans MongoDB; attribuer_id
valeur de même que celle deemployee_id
.http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/
Vous pouvez également consulter ce lien et de l'auto-incrément de la
_id
champ.C'est la syntaxe de la création de la clé primaire
Prenons notre base de données de collection nommée étudiant et c'est document clé nommée student_id dont nous avons besoin pour faire une clé primaire. Ensuite, la commande doit être comme ci-dessous.
Vous pouvez vérifier si cette student_id défini comme clé primaire en essayant d'ajouter de la valeur en double à la étudiant collection.
préfèrent le présent document pour de plus amples informations https://docs.mongodb.com/manual/core/index-unique/#create-a-unique-index