MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mongodb - correspondência regex de chaves para subdocumentos


Não é possível consultar as chaves do documento dessa maneira. Você pode pesquisar correspondências exatas usando $exists , mas você não pode encontrar nomes de chave que correspondam a um padrão.

Presumo (talvez incorretamente) que você esteja tentando encontrar documentos que tenham um subdocumento de URL e que nem todos os documentos terão isso? Por que não empurrar esse tipo de informação para baixo um nível, algo como:
{
  payload: {
    type: "url",
    url: "Facebook.com",
    ...
  }
}

Então você pode consultar como:
db.foo.find({"payload.type": "url", ...})

Eu também seria negligente se não observasse que você não deve usar pontos (. ) são nomes-chave no MongoDB. Em alguns casos, é possível criar documentos como este, mas causará grandes confusões ao tentar consultar documentos incorporados (onde o Mongo usa o ponto como um "separador de caminho", por assim dizer).