Il n'est pas possible d'interroger les clés de document de cette manière. Vous pouvez rechercher des correspondances exactes en utilisant $exists
, mais vous ne pouvez pas trouver de noms de clé correspondant à un modèle.
Je suppose (peut-être à tort) que vous essayez de trouver des documents qui ont un sous-document URL, et que tous les documents n'auront pas cela ? Pourquoi ne pas pousser ce type d'informations vers le bas, quelque chose comme :
{
payload: {
type: "url",
url: "Facebook.com",
...
}
}
Ensuite, vous pouvez interroger comme :
db.foo.find({"payload.type": "url", ...})
Je m'en voudrais également de ne pas noter qu'il ne faut pas utiliser de points (.
) sont des noms de clé dans MongoDB. Dans certains cas, il est possible de créer des documents comme celui-ci, mais cela entraînera de grandes confusions lorsque vous tenterez d'interroger des documents intégrés (où Mongo utilise le point comme "séparateur de chemin" pour ainsi dire).