sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongodb - regex-matchning av nycklar för underdokument

Det är inte möjligt att fråga mot dokumentnycklar på detta sätt. Du kan söka efter exakta matchningar med $exists , men du kan inte hitta nyckelnamn som matchar ett mönster.

Jag antar (kanske felaktigt) att du försöker hitta dokument som har ett URL-underdokument, och att inte alla dokument kommer att ha detta? Varför inte trycka ner den typen av information en nivå, något som:

{
  payload: {
    type: "url",
    url: "Facebook.com",
    ...
  }
}

Sedan kan du fråga som:

db.foo.find({"payload.type": "url", ...})

Jag skulle också vara försumlig om jag inte noterade att du inte skulle använda prickar (. ) är nyckelnamn i MongoDB. I vissa fall är det möjligt att skapa sådana här dokument, men det kommer att skapa stor förvirring när du försöker söka efter inbäddade dokument (där Mongo använder punkt som en "sökvägsseparator" så att säga).



  1. Spring Boot Standard UUID-codec fungerar inte med AbstractMongoClientConfiguration

  2. monk vs mongoose för Mongodb

  3. MongoDB fungerar inte med PHP på WAMP

  4. Lagring av kataloghierarki i ett datalager för nyckel-värde