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.

Cómo buscar múltiples ObjectIds usando MongoDB Atlas Search

Tengo documentos en una colección de MongoDB que hacen referencia a ObjectIds en una colección diferente. Por ejemplo, mi colección de Órdenes tiene documentos con un CustomerId.

Usando la búsqueda de MongoDB Atlas, he definido un índice que me permite buscar el campo CustomerId con esta sintaxis:

{
  "index": "Orders",
  "equals": {
    "path": "CustomerId",
    "value": new ObjectId("5m5....")
  }
}

(El fragmento anterior es de la etapa $search de mi canalización de agregación.)

Pero ahora necesito realizar una búsqueda OR utilizando múltiples IDs de cliente. Desafortunadamente, no puedo simplemente especificar un array de ObjectIds cuando uso el operador equals. https://docs.atlas.mongodb.com/atlas-search/equals/

¿Cuáles son mis opciones para buscar un índice de búsqueda de MongoDB Atlas con varios ObjectIds?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Una opción es usar el operador $in en lugar del operador equals. El operador $in te permite especificar un arreglo de valores con los que quieres hacer coincidir un camino dado. Aquí tienes un ejemplo:

    {
      "index": "Orders",
      "in": {
        "path": "CustomerId",
        "values": [
          new ObjectId("5m5..."),
          new ObjectId("6n6..."),
          new ObjectId("7o7...")
        ]
      }
    }
    

    Esto coincidirá con cualquier documento en la colección Orders donde el campo CustomerId coincida con uno de los tres ObjectIds especificados.

Comments are closed.