Quiero establecer uno de mis campos como clave principal. Estoy usando MongoDB como mi NoSQL.¿Cómo establecer una clave principal en MongoDB?
Respuesta
_id
campo está reservado para la clave principal en mongodb, y ese debería ser un valor único. Si no configura nada en _id
, automáticamente lo rellenará con "Objeto Id de MongoDB". Pero puedes poner cualquier información única en ese campo.
Otros detalles: http://www.mongodb.org/display/DOCS/BSON
espero que ayude.
http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/
También puede consultar este enlace y autoincrementación el campo _id
.
Tenga en cuenta que [las respuestas solo de enlace] (http://meta.stackoverflow.com/tags/link-only-answers/info) no se recomiendan, por lo que las respuestas deberían ser el punto final de una búsqueda de una solución (frente a otra escala más de referencias, que tienden a quedar obsoletas en el tiempo). Considere agregar una sinopsis independiente aquí, manteniendo el enlace como referencia. – kleopatra
El enlace ahora está roto, esta respuesta es inútil – PeterM
Una forma de lograr este comportamiento es estableciendo el valor en _id
(que está reservado para una clave principal en MongoDB) basándose en los campos personalizados que desea tratar como clave principal.
es decir, si quiero employee_id
como la clave principal, entonces en el momento de crear el documento en MongoDB; asigne el valor _id
igual que el de employee_id
.
La otra forma es crear Indexes
para su colección y asegúrese de que sean únicas.
Puede encontrar más en la siguiente link
realidad Me parece bastante simple y fácil de implementar.
"La restricción única en los índices garantiza que solo un documento puede tener un valor para un campo de una colección. Para las colecciones fragmentadas estos índices únicos no pueden exigir exclusividad porque las operaciones de inserción e indexación son locales a cada fragmento "--https: //docs.mongodb.org/manual/tutorial/enforce-unique-keys-for-sharded-collections/ – JohnC
En mongodb, el campo _id está reservado para la clave principal. Mongodb usa un valor interno de ObjectId si no lo define en su objeto y también crea un índice para garantizar el rendimiento.
Pero puede poner su propio valor único para _id y Mongodb lo usará en lugar de hacer uno para usted. E incluso si desea utilizar múltiples campos como clave primaria puede utilizar un objeto:
{ _id : { a : 1, b: 1} }
Sólo tenga cuidado al crear estos identificadores de que el orden de las teclas (A y B en el ejemplo) asuntos, si SWAP alrededor, se considera un objeto diferente.
Si piensa como RDBMS no puede crear la clave principal, la clave primaria predeterminada es _id. Pero puede crear Unique Index. El ejemplo está abajo.
db.members.createIndex({ "user_id": 1 }, { unique: true })
db.members.insert({'user_id':1,'name':'nanhe'})
db.members.insert({'name':'kumar'})
db.members.find();
La salida está abajo.
{ "_id": ObjetoID ("577f9cecd71d71fa1fb6f43a"), "user_id": 1, "name": "Nanhe"}
{ "_id": ObjetoID ("577f9d02d71d71fa1fb6f43b"), "name": "kumar"}
Cuando intenta insertar el mismo error de escritura de user_id mongodb trow.
db.members.insert({'user_id':1,'name':'aarush'})
WriteResult ({ "nInserted": 0, "writeError": { "código": 11000, "errmsg": "E11000 duplicado colección de errores clave: índice student.members: clave DUP user_id_1 : {:} 1.0" }} )
simple que puede utilizar db.collectionName.createIndex({urfield:1},{unique:true});
Esta es la sintaxis de la creación de la clave primaria
db. < colección> .createIndex (< llave y especificación de tipo de índice>, { único: true})
Tomemos que nuestra base de datos se han colección denominada estudiante y del documento clave han llamado student_id la que necesitamos para hacer una clave primaria. Entonces el comando debería ser como a continuación.
db.student.createIndex({student_id:1},{unique:true})
Puede comprobar si este student_id conjunto como clave principal al tratar de agregar valor duplicado a la colecciónestudiante.
prefieren este documento para obtener más información https://docs.mongodb.com/manual/core/index-unique/#create-a-unique-index
- 1. ¿Puedo establecer ignore_dup_key para una clave principal?
- 2. SQL: establecer la columna existente como clave principal en MySQL
- 3. cómo agregar una clave principal a una tabla en rieles
- 4. ¿Cómo elegir mi clave principal?
- 5. Cambio de clave principal
- 6. Establecer la clave principal en una base de datos muy grande
- 7. ¿Cómo crear una clave externa que también es una clave principal en MySQL?
- 8. Clasificación de clave principal
- 9. Hibernar sin clave principal
- 10. ¿Cómo establecer la clave principal en la migración de Ruby on Rails?
- 11. Tablas sin clave principal
- 12. ¿Se indexa automáticamente una clave principal?
- 13. ¿RedBean necesita una clave principal "id"?
- 14. Android: Clave principal GUID
- 15. ¿Usar "LIMIT 1" acelera una consulta en una clave principal?
- 16. Creando una clave principal en una tabla temporal - ¿Cuándo?
- 17. jquery - cómo establecer el atributo principal?
- 18. Django + PostgreSQL: ¿Cómo restablecer la clave principal?
- 19. ¿Cómo se configura la clave principal y la clave externa en los datos centrales?
- 20. Clave principal/externa en Entity Framework
- 21. MongoDB: insertar en la actualización de clave duplicada
- 22. Cambiar clave principal a clave compuesta (la clave principal ya existe)
- 23. ¿Cómo eliminar utilizando solo la clave principal?
- 24. Comodín de MongoDB en la clave de una consulta
- 25. ¿Crear vista con clave principal?
- 26. ¿Clave principal compuesta o no?
- 27. Cómo $ establecer elementos sub-sub-array en MongoDB
- 28. Clave principal ascendente vs descendente
- 29. ¿establecer el valor nulo en una columna de clave externa?
- 30. RestKit atributo de clave principal
De hecho, esto no responde a 'cómo configurar uno de mis campos como key' primaria, ex: Quiero user_email como clave en las colecciones de los usuarios, pero la forma de establecer que campo como clave y único –