Het is niet mogelijk om op deze manier een query uit te voeren op documentsleutels. U kunt zoeken naar exacte overeenkomsten met $exists
, maar u kunt geen sleutelnamen vinden die overeenkomen met een patroon.
Ik neem aan (misschien ten onrechte) dat u documenten probeert te vinden die een URL-subdocument hebben, en dat niet alle documenten dit hebben? Waarom duwt u dat type informatie niet een niveau omlaag, zoiets als:
{
payload: {
type: "url",
url: "Facebook.com",
...
}
}
Dan zou je een vraag kunnen stellen als:
db.foo.find({"payload.type": "url", ...})
Ik zou ook nalatig zijn als ik niet opmerkte dat je geen punten mag gebruiken (.
) zijn sleutelnamen in MongoDB. In sommige gevallen is het mogelijk om documenten zoals deze te maken, maar het zal grote verwarring veroorzaken als u probeert om ingesloten documenten te doorzoeken (waar Mongo punt gebruikt als een "padscheidingsteken" om zo te zeggen).