Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

109
Vistas
Asignación de un campo a otro ObjectId de una colección diferente en MongoDB

Me pregunto si es posible usar un operador de agregación de búsqueda de $ dentro del campo de un operador de mapa de $. Estoy tratando de asignar los VIN dentro de los objetos carData a los identificadores de documentos correspondientes en una colección de VIN. ¿Hay alguna manera de lograr esto usando $búsqueda dentro de $mapa donde puedo hacer coincidir el campo vin dentro de mis objetos carData con campos vin dentro de mi colección VIN para asignar una identificación en lugar de vin?

 CarData Collection: carData: [ {vin: 123456789, make: "Dodge"}, {vin: 987654321, make: "Honda"} ] Vin Collection: [ { _id: ObjectId("1dsf1234125") Vin: 123456789 }, { _id: ObjectId("1dsf1234124") Vin: 987654321 }, ]

Resultado Esperado

 carData: [ {vin: ObjectId("1dsf1234125"), make: "Dodge"}, {vin: ObjectId("1dsf1234124"), make: "Honda"} ]
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Método 1

 db.carDatas.aggregate([ { $unwind: "$carData" }, { $lookup: { from: "Vins", localField: "carData.vin", foreignField: "Vin", as: "docs" } }, { $project: { make: "$carData.make", vin: { $first: "$docs._id" }, _id: 0 } }, { $group: { _id: null, carData: { $push: "$$ROOT" } } }, { $unset: "_id" } ])

parque infantil mongo

about 4 years ago · Juan Pablo Isaza Denunciar

0

Usando las muestras de datos de la publicación de la pregunta, esta agregación devuelve el resultado esperado (cambie los nombres de la colección de manera adecuada):

 db.cars_collection.aggregate([ { $lookup: { from: "vins_collection", localField: "vin", foreignField: "Vin", as: "car_vins" } }, { $project: { _id: 0, make: 1, vin: { $arrayElemAt: [ { $map: { input: "$car_vins", in: "$$this._id" } }, 0 ] } } }, ])

El resultado se verá así:

 { "make" : "Dodge", "vin" : ObjectId("626a12a1ac1cc4f9d0bbd7e7") } { "make" : "Honda", "vin" : ObjectId("626a12a1ac1cc4f9d0bbd7e8") }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda