Insertar subdocumento en MongoDB
Uno de los principios de MongoDB es que dentro de un documento podemos contener otros documentos (conocidos como subdocumentos). De esta forma podemos realizar técnicas de modelado de datos en MongoDB.
En este caso vamos a crear un documento que represente los datos de una ciudad, el cual contendrá, a su vez, un subdocumento con los datos de ubicación de dicha ciudad. El documento resultante será algo del siguiente estilo:
{ "_id": ObjectId("569c389705d1b33ed481989c"), "nombre": "Avila", "habitantes": 58358, "ubicacion": { "altitud": 1131, "latitud": 40.654347222222, "longitud": -4.6962222222222 }}Conexión a la base de datos
Sección titulada «Conexión a la base de datos»Lo primero que haremos para poder insertar subdocumento en MongoDB será conectarnos a la base de datos:
conn = new Mongo();db = conn.getDB("demografia")Crear el documento principal
Sección titulada «Crear el documento principal»Ahora vamos a crear el documento. El documento lo creamos en Javascript mediante un Object(), ya que los objetos en Javascript se identifican con documentos JSON, justo lo que espera MongoDB.
var ciudad = new Object();ciudad.nombre = "Avila";ciudad.habitantes = 58358;Crear el subdocumento
Sección titulada «Crear el subdocumento»A su vez el subdocumento con la ubicación será un Object().
var geo = new Object();geo.altitud = 1131;geo.latitud = 40.654347222222;geo.longitud = -4.6962222222222;En este caso hemos guardado la latitud y longitud en dos campos, si bien lo más recomendado en MongoDB será guardarlo en un array de dos valores. Ya veremos en otros ejemplos de Línea de Código el porqué.
Asignar el subdocumento
Sección titulada «Asignar el subdocumento»Lo siguiente será crear la propiedad geo en el primero documento a la cual asignaremos este nuevo objeto que representa al subdocumento.
ciudad.geo = geo;Insertar el documento
Sección titulada «Insertar el documento»Solo nos quedará insertar el documento con su subdocumento. Para ello utilizamos el método .insert() sobre la colección de ciudades.
x = db.ciudades.insert(ciudad);print('El número de documentos insertado es de ' + x['nInserted']);Y así ya habremos conseguido insertar subdocumento en MongoDB.
Descarga el código de Insertar subdocumento en MongoDB
Cómo utilizar los objetos de Javascript para poder insertar subdocumento en MongoDB.