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

309
Vistas
¿Cómo puedo obtener más de un documento de mongodb con fastapi?

mi modelo de base de datos se ve así ...

 from pydantic import BaseModel class Store(BaseModel): name: str store_code : str

y puede haber los mismos nombres de tiendas en db con diferente store_code. lo que quiero es filtrar toda la información de las tiendas con los mismos nombres. por ejemplo, si mi db es así...

 { name:lg store_code: 123 name:lg store_code:456 }

Me gustaría ver todos esos dos documentos, mi código api rápido de python es así ...

 from fastapi import FastAPI, HTTPException from database import * app = FastAPI() @app.get("/api/store{store_name}", response_model=Store) async def get_store_by_name(store_name): response = await fetch_store_by_name(store_name) if response: return response raise HTTPException

y este es mi código de consulta mongo...

 from pymongo import MongoClient from model import Store client = MongoClient(host='localhost', port=27017) database = client.store async def fetch_store_by_name(store_name:str): document = collection.find({"name":store_name}) return document

Pensé en el documento, eventualmente habría dos documentos. pero siempre hay un error como este

 pydantic.error_wrappers.ValidationError: 1 validation error for Store response value is not a valid dict (type=type_error.dict)

hay alguien que me ayude por favor?

++++

Acabo de cambiar mi consulta así

 async def fetch_store_by_name(store_name:str): stores = [] cursor = collection.find({"name":store_name}) for document in cursor: stores.append(document) return stores

esto debería devolver dos documentos como esperaba pero todavía tiene

 ValueError: [TypeError("'ObjectId' object is not iterable"), TypeError('vars() argument must have __dict__ attribute')]

este error.

Creo que mi código fast-api tiene un problema que realmente no tengo idea...

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

0

async def fetch_store_by_name(store_name:str): stores = [] ---Fault in this line--- cursor = collection.find({"name":store_name}) for document in cursor: stores.append(document) return stores

las tiendas deben ser un valor de cadena, no una lista, ya que Mongodb intentará encontrarlo como el valor predeterminado que proporcionó. En este caso - str

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