Si vous utilisez mongoimport pour importer votre fichier CSV, vous ne pouvez pas spécifier un chemin dans la commande de remplacement le champ _id
avec votre champ Student_ID
. Par conséquent, lors de l'importation, MongoDB crée automatiquement un champ _id
pour chaque enregistrement et lui assigne un ObjectID unique. Pour les inserts, ce qui est mentionné dans la documentation here:
Si le document ne précise pas un champ _id, puis MongoDB ajoutera le champ _id et attribuer un ObjectId unique pour le document avant encartage. La plupart des pilotes créent un ObjectId et insèrent le champ _id, mais le mongod créera et remplira le _id si le pilote ou l'application ne le fait pas.
Si votre fichier CSV ne pas contiennent un champ déjà _id
alors le champ _id
sera ajouté à la collection (ainsi que votre Student_ID, nom_etudiant et champs d'adresse) lors de l'importation.
Si vous souhaitez que le champ Student_ID
soit le champ _id
vous pouvez ensuite renommer la colonne Student_ID dans le fichier CSV à _id puis faire le mongoimport.
Si vous voulez vraiment juste avoir votre champ Student_ID
se comportent comme une clé primaire puis envisager de faire un unique index sur le terrain Student_ID. De cette façon, comme une clé primaire, aucune valeur dupliquée ne se produira. Par exemple:
db.<yourcollection>.createIndex({ "Student_ID": 1 }, { unique: true })
Demandez-vous si vous pouvez utiliser le champ 'Student_ID' dans votre document ** à la place ** de' _id'? (En d'autres termes, votre document n'aurait pas de champ '_id', mais plutôt un champ' Student_ID'?) – whyceewhite
Oui, c'est exactement ce que je veux dire. Au lieu d'une autre colonne de valeur unique '_id', Puis-je simplement utiliser ma colonne' Student_ID'? – EngineeredBrain