Stack Overflow en español · datos JSONL completos

Preparando el motor…

Al abrir la página se descargan todas las filas del dump desde dsevilla/bd2-data: unos 106,7 MB comprimidos en cinco ficheros. Sólo Body, Text y AboutMe se limitan a 100 bytes UTF‑8; la carga completa puede necesitar varios GB de memoria del navegador. El botón permite cambiar a una muestra de 12,5 MB, con una pregunta de cada ocho y su hilo completo; las consultas devolverán menos filas. Si falla, puedes reintentarlo, usar la muestra mínima incrustada o abrir los ficheros descargados a mano. Los datos se comparten entre todas las páginas de ejercicios.

Descargar JSONL completo Descargar JSONL reducido

Los resultados se muestran en bloques de 25 documentos. El código del editor se evalúa en tu navegador y nada se envía a ningún servidor.

Compatibilidad: mingo ejecuta el lenguaje de consulta de MongoDB sobre objetos en memoria, no es un mongod. No hay índices, ni explain(), ni transacciones, ni búsqueda vectorial: esos ejercicios siguen necesitando el servidor del boletín. Además, el Body de las publicaciones, el Text de los comentarios y el AboutMe de los usuarios vienen limitados a 100 bytes UTF‑8.

Cómo escribir las consultas

Escribe una expresión con la forma db.colección.operación(...), usando la sintaxis de PyMongo que vemos en clase. No hace falta crear un cliente, conectarse ni escribir await: la página ya proporciona db y traduce este pequeño subconjunto antes de pasarlo a mingo.

db.posts.find(
    {"$and": [
        {"PostTypeId": 1},
        {"$or": [{"Score": {"$gte": 20}}, {"AnswerCount": {"$gte": 5}}]}
    ]},
    {"Id": 1, "Title": 1, "Score": 1}
).sort([("Score", -1), ("Id", 1)]).limit(10).to_list()
db.posts.update_many(
    {"$and": [{"PostTypeId": 1}, {"Score": {"$gte": 20}}]},
    {"$set": {"Revisado": True}}
)
db.posts.update_one(
    {"Id": 101},
    {"$inc": {"Score": 1}}
).modified_count

La página traduce este subconjunto de PyMongo a la API de mingo. Las actualizaciones sólo viven en la sesión del navegador y se pierden al recargar o cambiar de conjunto de datos. Sobre el conjunto completo, un update_many recorre los documentos en memoria; para experimentar conviene empezar con la muestra mínima.