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

450
Vistas
MongoDB Unirse en el campo _id de String a ObjectId agregado $ búsqueda

Tengo dos colecciones.

Clientes:

 { "_id" : ObjectId("584aac38686860d502929b8b"), "name" : "user", "email" : "user@gmail.com" }

Publicaciones:

 { "_id" : ObjectId("584aaca6686860d502929b8d"), "title" : "Post", "description":"description", "user_id" : "584aac38686860d502929b8b" }

Quiero unirme a esta colección según el ID de usuario (de la colección de posts ) - _id (en la colección de customers ).

Intenté la siguiente consulta:

 dbo.collection('customers').aggregate([ { $lookup: { from: 'posts', localField: 'user_id', foreignField: '_id', as: 'posts' } } ])

pero no funciona.

La salida que estoy obteniendo:

 { "_id": "584aac38686860d502929b8b", "name": "user", "email": "user@gmail.com", "posts": [] }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

De la colección de posts adjuntas, user_id era una cadena pero no ObjectId .

Para comparar, primero debe convertir user_id a ObjectId .

 db.customers.aggregate([ { $lookup: { from: "posts", let: { customerId: "$_id" }, pipeline: [ { $match: { $expr: { $eq: [ { "$toObjectId": "$user_id" }, "$$customerId" ] } } } ], as: "posts" } } ])

Ejemplo de parque infantil de Mongo


Nota: De su $lookup existente, ha invertido localField y foreignField .

Coincidencia de igualdad con una sola condición de combinación

 { $lookup: { from: <collection to join>, localField: <field from the input documents>, foreignField: <field from the documents of the "from" collection>, as: <output array field> } }
over 4 years ago · Santiago Trujillo 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