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).