sql >> Database >  >> NoSQL >> MongoDB

Mongodb - regex match van sleutels voor subdocumenten

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



  1. pymongo - Berichtlengte is groter dan de maximale berichtgrootte van de server

  2. Kan men een relationele database maken met MongoDB?

  3. Diff() tussen twee collecties in MongoDB

  4. Toegang tot gedockte redis vanaf de Windows-host