es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Encuentra identificadores únicos entre dos colecciones en MongoDB.

Soy nuevo en mongoDB y estoy tratando de hacer una consulta para encontrar identificadores únicos en una colección basada en otra colección.

Colección1:

[{
id: 123,
name: xyz
},
{
id: 234,
name: abc
},
{
id: 345,
name: pqr
}]

Colección2:

[{
id: 123,
status: y
},
{
id: 789,
status: n
},
{
id: 345,
status: y
}]

El resultado que estoy buscando es obtener los elementos únicos en Colección1 basados en los identificadores de Colección2. Aquí, en el ejemplo anterior, este es el resultado deseado, ya que el id 234 está presente en Colección1 pero no en Colección2.

{
id: 234,
name: abc
}

También quiero saber el número de registros coincidentes. Cualquier pista será útil.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para encontrar los elementos únicos en la Colección1 basados en los ids de la Colección2, puede utilizar la siguiente consulta en MongoDB:

    db.Colección1.find({id: {$nin: db.Colección2.distinct("id")}})
    

    Esta consulta utiliza el operador $nin para encontrar todos los elementos en la Colección1 cuyo campo id no está en el conjunto distinto de valores de id de la Colección2.

    Para obtener el número de registros coincidentes, puede agregar el método count() al final de la consulta:

    db.Colección1.find({id: {$nin: db.Colección2.distinct("id")}}).count()
    

    Esto devolverá el número de registros que coinciden con la consulta.

Comments are closed.