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

154
Vistas
Filtro MondoDB basado en una matriz de objetos

Tengo este tipo de datos en una colección:

 { "_id": { "$oid": "6014662b3a38ba4929b602ab" }, "collection": [ { "name": "Facility", "_id": { "$oid": "601466293a38ba4929b602aa" }, "is_deleted": false }, { "name": "User", "_id": { "$oid": "60021529c02fa2b27e7c1989" }, "is_deleted": false }, { "name": "Asset", "_id": { "$oid": "6018948fc35a109224439f73" }, }, { "name": "Asset", "_id": { "$oid": "604a734fca10c74d800031db" }, "is_deleted": true } ], "customer": "TestCustomer", "is_deleted": false }

y tambien tengo esta consulta

 db.getCollection("Collection").aggregate([{ '$match': { '$and': [{ 'collection.name': 'User', 'collection._id': ObjectId('60021529c02fa2b27e7c1989'), 'collection.is_deleted': false }, { 'collection.name': 'Asset', 'collection._id': ObjectId('604a734fca10c74d800031db'), 'collection.is_deleted': false }], 'customer': 'TestCustomer', 'is_deleted': false } }])

is_deleted on Asset es verdadero en la base de datos, pero estoy solicitando cuando el valor es false .

Cuando se ejecuta esta consulta, no se supone que devuelva ningún dato, pero lo hace. He estado tratando de resolver este problema, pero nada ha ayudado hasta ahora.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Debido a que está tratando de hacer coincidir elementos dentro de una matriz, debe usar $elemMatch en su lugar. Además, no hay necesidad del operador $and .

 db.collection.aggregate([ { "$match": { "collection": { "$elemMatch": { "name": "User", "_id": ObjectId("60021529c02fa2b27e7c1989"), "is_deleted": false } }, "collection": { "$elemMatch": { "name": "Asset", "_id": ObjectId("604a734fca10c74d800031db"), "is_deleted": false } }, "customer": "TestCustomer", "is_deleted": false } } ])

Zona de juegos: https://mongoplayground.net/p/cdz9TgQ8HNw

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