2012-03-18 36 views

Respuesta

35

Puede utilizar cualquier carácter (UTF8) en el nombre del campo que no sea especial (contiene ".", O comienza con "$").

https://jira.mongodb.org/browse/SERVER-3229

https://stackoverflow.com/a/7976235/311220

Por lo general es mejor seguir con alfanuméricos en minúsculas con guiones sin embargo.

+1

¿Qué pasa con las especificaciones del producto? ¿No simplificaría mucho el diseño si los nombres de campo fueran la descripción de la especificación real? (p. ej. ''Tamaño de pantalla': '26 pulgadas'') – Dor

+3

No necesariamente, @Dor - desea tener un poco de flexibilidad entre su UI y su base de datos (nada tan voluble como un cliente:" Espera, quiero que diga 'Tamaño de pantalla', no 'Tamaño de pantalla' "). Y, por supuesto, está toda la parte de la internacionalización del rompecabezas, que requiere ese desacoplamiento también. Por cierto, cuando Acorn dice "cualquier UTF8", eso incluye espacios, por lo que estás perfectamente bien allí, si quieres. –

+0

¿Cómo manejará las palabras en camello como 'userDetails'? Es esto valido? –

1

Otra cosa a tener en cuenta es el hecho de que puede hacer un nombre de propiedad llamado "consulta" pero luego usa operadores de consulta en él, por lo que es incómodo realizar una gran cantidad de consultas.

Ejemplo:

documento inserto con una propiedad denominada

db.coll.insert({ query: 'foo' }); 

consulta Igualdad funciona:

db.coll.findOne({ query: 'foo' });  

No igual ($ ne) sin que:

db.coll.findOne({ query: { $ne: 'bar' } }); 
+0

Buen punto. Pero aún puede hacer esa consulta como 'db.coll.findOne ({query: {query: {$ ne: 'bar'}}})'. Entonces no es imposible, pero es incómodo. – JohnnyHK

+0

Gracias, no me di cuenta de que no era imposible hasta después de publicar esto. Definitivamente más incómodo. – Dave

+1

A partir del 3.2 (publicado a finales de 2015) esto fue corregido. –

Cuestiones relacionadas