Det er ikke muligt at forespørge mod dokumentnøgler på denne måde. Du kan søge efter eksakte matches ved hjælp af $exists
, men du kan ikke finde nøglenavne, der matcher et mønster.
Jeg går ud fra (måske forkert), at du forsøger at finde dokumenter, der har et URL-underdokument, og at ikke alle dokumenter vil have dette? Hvorfor ikke skubbe den type information et niveau ned, sådan som:
{
payload: {
type: "url",
url: "Facebook.com",
...
}
}
Så kan du forespørge som:
db.foo.find({"payload.type": "url", ...})
Jeg ville også være eftergivende, hvis jeg ikke bemærkede, at du ikke skulle bruge prikker (.
) er nøglenavne i MongoDB. I nogle tilfælde er det muligt at oprette dokumenter som dette, men det vil skabe stor forvirring, når du forsøger at forespørge i indlejrede dokumenter (hvor Mongo bruger prik som en "sti-separator" så at sige).