MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongodb - correspondance regex des clés pour les sous-documents

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