sql >> Base de Datos >  >> NoSQL >> MongoDB

Mongodb:coincidencia de expresiones regulares de claves para subdocumentos

No es posible consultar claves de documento de esta manera. Puede buscar coincidencias exactas usando $exists , pero no puede encontrar nombres de clave que coincidan con un patrón.

Supongo (quizás incorrectamente) que está tratando de encontrar documentos que tienen un subdocumento de URL, y que no todos los documentos tendrán esto. ¿Por qué no empujar ese tipo de información un nivel más abajo, algo así como:

{
  payload: {
    type: "url",
    url: "Facebook.com",
    ...
  }
}

Entonces podría consultar como:

db.foo.find({"payload.type": "url", ...})

También sería negligente si no notara que no debe usar puntos (. ) son nombres clave en MongoDB. En algunos casos, es posible crear documentos como este, pero causará grandes confusiones al intentar consultar documentos incrustados (donde Mongo usa el punto como un "separador de ruta", por así decirlo).