sql >> Databáze >  >> NoSQL >> MongoDB

Mongodb - regex shoda klíčů pro vnořené dokumenty

Tímto způsobem není možné dotazovat se na klíče dokumentu. Přesné shody můžete hledat pomocí $exists , ale nemůžete najít názvy klíčů, které odpovídají vzoru.

Předpokládám (možná nesprávně), že se snažíte najít dokumenty, které mají dílčí dokument URL, a že to nebudou mít všechny dokumenty? Proč neposunout informace o tomto typu o úroveň níže, něco jako:

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

Pak se můžete zeptat jako:

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

Byl bych také nedbalý, kdybych si nevšiml, že byste neměli používat tečky (. ) jsou klíčová jména v MongoDB. V některých případech je možné vytvářet dokumenty, jako je tento, ale způsobí to velké zmatky, když se pokusíte dotazovat na vložené dokumenty (kde Mongo používá tečku jako „oddělovač cesty“, abych tak řekl).



  1. Problém řízení toku pomocí uzlu/redis a zpětných volání?

  2. připojení mongoose k atlasu mongoDB a nodejs

  3. Hlasovací systém s Backbone.js

  4. Mongo odstraňuje duplikáty v poli objektů na základě pole