Docs Menu
Docs Home
/ /

Consulta tus datos

Puede escribir "Filtro de documentos de MongoDB" en la barra de consulta para mostrar solo los documentos que coincidan con los criterios especificados. Para obtener más información sobre cómo consultar documentos, consulte Consultar documentos en el manual de MongoDB.

Puedes consultar tus datos para implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

  • MongoDB Enterprise: la versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: la versión de MongoDB con código fuente disponible, gratuita y autogestionada

Para obtener más información sobre cómo consultar tus datos para implementaciones alojadas en MongoDB Atlas, consulta Busca documentos específicos.

  1. En el Filter En el campo, introduzca un documento de filtro entre las llaves. Puede usar todos los operadores de consulta de MongoDB excepto el Operadores $texty$expr.

    Ejemplo

    El siguiente filtro devuelve documentos que tienen un valor de title de Jurassic Park:

    { "title": "Jurassic Park" }
  2. Haz clic en Find para ejecutar el query y ver los resultados actualizados.

    Resultados de aplicar un filtro de query
    haga clic para ampliar

Nota

Limitaciones de enteros grandes

Para query enteros mayores que el tamaño máximo de enteros de JavaScript, envuelva el entero en caracteres string y pase el entero al constructor NumberLong().

Por ejemplo, para encontrar todos los documentos con un valor number de 507550989629521900, utiliza este filtro de query:

{ "number" : NumberLong("507550989629521900") }

Los ejemplos en esta página utilizan un pequeño conjunto de datos de ejemplo. Para importar los datos de muestra en la implementación de MongoDB, se deben seguir estos pasos:

  1. Copie los siguientes documentos en su portapapeles:

    [
    {
    "name": "Andrea Le",
    "email": "andrea_le@fake-mail.com",
    "school": {
    "name": "Northwestern"
    },
    "version": 5,
    "scores": [ 85, 95, 75 ],
    "dateCreated": { "$date": "2003-03-26" }
    },
    {
    "email": "no_name@fake-mail.com",
    "version": 4,
    "scores": [ 90, 90, 70 ],
    "dateCreated": { "$date": "2001-04-15" }
    },
    {
    "name": "Greg Powell",
    "email": "greg_powell@fake-mail.com",
    "version": 1,
    "scores": [ 65, 75, 80 ],
    "dateCreated": { "$date": "1999-02-10" }
    }
    ]
  2. En Compass, utiliza el panel de navegación izquierdo para seleccionar la base de datos y la colección a la que deseas importar los datos.

  3. Haz clic en la pestaña Documents.

  4. Haga clic en Add Data y seleccione Insert Document.

  5. Establece el parámetro View en JSON ({}).

  6. Se deben pegar los documentos JSON del portapapeles en el modal.

  7. Haga clic en Insert.

Nota

Si no tienes una implementación de MongoDB o si deseas consultar una muestra de conjunto de datos más grande, consulta Datos de muestra para clústeres de Atlas a fin de obtener instrucciones sobre cómo crear un clúster de nivel gratuito con datos de muestra. En el siguiente ejemplo, se establece un filtro de query en los documentos de muestra proporcionados en esta página.

El siguiente filtro de query busca todos los documentos donde el valor de name es "Andrea Le":

{ name: "Andrea Le" }

El query devuelve el siguiente documento:

{
"_id": { "$oid": "5e349915cebae490877d561d" },
"name": "Andrea Le",
"email": "andrea_le@fake-mail.com",
"school": {
"name": "Northwestern"
},
"version": 5,
"scores": [ 85, 95, 75 ],
"dateCreated": { "$date": "2003-03-26" }
}

El siguiente filtro de query busca todos los documentos donde el arreglo scores contiene el valor 75 y el name es Greg Powell:

{ $and: [ { scores: 75, name: "Greg Powell" } ] }

El query devuelve el siguiente documento:

{
"_id": { "$oid":"5a9427648b0beebeb69579cf" },
"name": "Greg Powell",
"email": "greg_powell@fake-mail.com",
"version": 1,
"scores": [ 65, 75, 80 ],
"dateCreated": { "$date": "1999-02-10" }
}

El siguiente filtro de query utiliza el operador $or para buscar documentos donde version sea 4, o name sea Andrea Le:

{ $or: [ { version: 4 }, { name: "Andrea Le" } ] }

La query devuelve los siguientes documentos:

[
{
"_id": { "$oid": "5e349915cebae490877d561d" },
"name": "Andrea Le",
"email": "andrea_le@fake-mail.com",
"school": {
"name": "Northwestern"
},
"version": 5,
"scores": [ 85, 95, 75 ],
"dateCreated": { "$date": "2003-03-26" }
},
{
"_id": { "$oid":"5e349915cebae490877d561e" },
"email": "no_name@fake-mail.com",
"version": 4,
"scores": [ 90, 90, 70 ],
"dateCreated": { "$date": "2001-04-15" }
}
]

El siguiente filtro de query utiliza el operador $not para buscar todos los documentos donde el valor del campo name no sea igual a "Andrea Le", o el campo name no exista:

{ name: { $not: { $eq: "Andrea Le" } } }

La query devuelve los siguientes documentos:

[
{
"_id": { "$oid":"5e349915cebae490877d561e" },
"email": "no_name@fake-mail.com",
"version": 4,
"scores": [ 90, 90, 70 ],
"dateCreated": { "$date": "2001-04-15" }
},
{
"_id": { "$oid":"5a9427648b0beebeb69579cf" },
"name": "Greg Powell",
"email": "greg_powell@fake-mail.com",
"version": 1,
"scores": [ 65, 75, 80 ],
"dateCreated": { "$date": "1999-02-10" }
}
]

Tip

Para obtener una lista completa de operadores lógicos del query, consulta Operadores lógicos del query.

El siguiente filtro de query utiliza el operador $lte para buscar todos los documentos donde version sea menor o igual a 4:

{ version: { $lte: 4 } }

La query devuelve los siguientes documentos:

[
{
"_id": { "$oid":"5e349915cebae490877d561e" },
"email": "no_name@fake-mail.com",
"version": 4,
"scores": [ 90, 90, 70 ],
"dateCreated": { "$date": "2001-04-15" }
},
{
"_id": { "$oid":"5a9427648b0beebeb69579cf" },
"name": "Greg Powell",
"email": "greg_powell@fake-mail.com",
"version": 1,
"scores": [ 65, 75, 80 ],
"dateCreated": { "$date": "1999-02-10" }
}
]

Tip

Para obtener una lista completa de operadores de comparación, consulta Operadores del query de comparación.

El siguiente filtro de query utiliza el operador $gt y el método Date() para buscar todos los documentos donde el valor del campo dateCreated sea posterior al 22 de junio del 2000:

{ dateCreated: { $gt: new Date('2000-06-22') } }

La query devuelve los siguientes documentos:

[
{
"_id": { "$oid": "5e349915cebae490877d561d" },
"name": "Andrea Le",
"email": "andrea_le@fake-mail.com",
"school": {
"name": "Northwestern"
},
"version": 5,
"scores": [ 85, 95, 75 ],
"dateCreated": { "$date": "2003-03-26" }
},
{
"_id": { "$oid": "5e349915cebae490877d561e" },
"email": "no_name@fake-mail.com",
"version": 4,
"scores": [ 90, 90, 70 ],
"dateCreated": { "$date": "2001-04-15" }
}
]

El siguiente filtro de query utiliza el operador $elemMatch para buscar todos los documentos donde al menos un valor en el arreglo scores sea mayor que 80 y menor que 90:

{ scores: { $elemMatch: { $gt: 80, $lt: 90 } } }

El query devuelve el siguiente documento porque uno de los valores del arreglo scores es 85:

{
"_id": { "$oid": "5e349915cebae490877d561d" },
"name": "Andrea Le",
"email": "andrea_le@fake-mail.com",
"school": {
"name": "Northwestern"
},
"version": 5,
"scores": [ 85, 95, 75 ],
"dateCreated": { "$date": "2003-03-26" }
}

Para obtener más ejemplos de query, consulta Busca documentos en el manual de MongoDB.

El siguiente filtro de query utiliza el operador $regex para buscar todos los documentos donde el valor de email incluya el término "andrea_le":

{ email: { $regex: "andrea_le" } }

El query devuelve el siguiente documento:

{
"_id": { "$oid": "5e349915cebae490877d561d" },
"name": "Andrea Le",
"email": "andrea_le@fake-mail.com",
"school": {
"name": "Northwestern"
},
"version": 5,
"scores": [ 85, 95, 75 ],
"dateCreated": { "$date": "2003-03-26" }
}

El siguiente filtro de query encuentra el documento con el subcampo school.name de “Northwestern”:

{ "school.name": "Northwestern" }

El query devuelve el siguiente documento:

{
"_id": { "$oid": "5e349915cebae490877d561d" },
"name": "Andrea Le",
"email": "andrea_le@fake-mail.com",
"school": {
"name": "Northwestern"
},
"version": 5,
"scores": [ 85, 95, 75 ],
"dateCreated": { "$date": "2003-03-26" }
}

Para obtener más ejemplos de query, consulta Busca documentos en el manual de MongoDB.

Si un documento contiene un campo y un valor específicos al cual quieres que tu query coincida, puedes hacer clic derecho en el campo deseado y seleccionar Add to query del menú desplegable:

Haz clic derecho para añadir un campo a la query

Esto añade una cláusula que coincide con el campo y su valor específico a la barra de query. En el ejemplo anterior, Compass añade una query que coincide con { runtime: 72 }.

Si no has definido una query, Compass crea una en la barra de las query.

El Filter Compass soporta el uso de la representaciónmongosh de los tipos de datos BSON de los JSON extendidos de MongoDB.

Ejemplo

El siguiente filtro devuelve documentos donde start_date es mayor que el BSON Date 2017-05-01:

{ "start_date": {$gt: new Date('2017-05-01')} }

Al especificar el tipo Date tanto en start_date como en el operador de comparación $gt, Compass realiza la comparación greater than cronológicamente y devuelve documentos cuya start_date es posterior a 2017-05-01.

Sin la Date especificación de tipo, Compass compara los start_dates como cadenas lexicográficamente, en lugar de comparar los valores cronológicamente.

Para borrar la barra de query y los resultados del query, haz clic en Reset.

Si intentas hacer un query o exportar datos con caracteres UTF8 no válidos, aparece el siguiente mensaje de error:

Invalid UTF-8 string in BSON document.

Para hacer un query o exportar estos datos, establece la opción URI enableUtf8Validation en false para desactivar la validación UTF8.

Advertencia

Si se editan datos con enableUtf8Validation=false pueden perderse datos. Este enfoque es una solución temporal para consultar o exportar datos únicamente.

El siguiente URI desactiva la validación de UTF8:

mongodb://localhost:27017/?enableUtf8Validation=false

Nota

También puedes desactivar esta opción en el Opciones de conexión avanzadas seleccionando enableUtf8Validation e false ingresando.

$filter corresponde a la WHERE cláusula en una SQL SELECT declaración.

Ejemplo

Hay 3235 artículos. Al usuario le gustaría ver todos los artículos que escribió Joe Bloggs.

Opción de filtro de Compass
{ author : { $eq : "Joe Bloggs" } }
Agregación de MongoDB
db.article.aggregate( { $match: { "author": "Joe Bloggs" } } )
SQL
SELECT * FROM article
WHERE author = "Joe Bloggs";

Volver

Borra varios documentos