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

Zástupný znak MongoDB v klíči dotazu

Jak jsme se zeptali, není to možné. Problém serveru, na který jste odkazovali, je stále pod „problémy, kterými si nejsme jisti“ .

MongoDB má určitou inteligenci týkající se používání polí a myslím, že to je součástí složitosti takové funkce.

Použijte následující dotaz db.foo.find({ 'a.b' : 4 } ) . Tento dotaz bude odpovídat následujícím dokumentům.

{ a: { b: 4 } }
{ a: [ { b: 4 } ] }

Co zde tedy dělá „divoká karta“? db.foo.find( { a.* : 4 } ) Odpovídá prvnímu dokumentu? Co ten druhý?

Navíc, co to znamená významově? Jak jste popsali, dotaz je v podstatě "najít dokumenty, kde kterékoli pole v tomto dokumentu má hodnotu 4" . To je trochu neobvyklé.

Existuje nějaká konkrétní sémantika, které se snažíte dosáhnout? Možná vám změna struktury dokumentu poskytne požadovaný dotaz.




  1. Použití operátoru $slice k získání posledního prvku pole

  2. Redis Managed Pub/Sub Server

  3. Aby se dotazy mongoose.js spouštěly synchronně

  4. Problémy se spuštěním instance OAuthd