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

dotaz mongodb, aby každý prvek v poli doc odpovídal podmínce

Nemyslím si, že to zatím existuje nějaký způsob, jak to udělat, kromě ručního iterování vašich dokumentů a kontroly každé hodnoty v poli. To bude poměrně pomalé, protože musí spouštět JavaScript v každém dokumentu a nemůže využívat žádný index oproti col.values .

Dokonce i $ kde Zdá se, že dotaz na výraz JavaScript zde nefunguje, protože možná proto, že dotaz obsahuje zpětné volání a je příliš složitý:

db.col.find("this.values.every(function(v) { return (v > 1 && v < 5) })")

Upravit: Pro některé dotazy, včetně tohoto, JavaScript $kde výraz potřebuje příkaz return, takže to funguje dobře:

db.col.find("return this.values.every(function(v) { return (v > 1 && v < 5) })")


  1. Chyba Mongodb při spuštění

  2. Odstranění prvku pole v mongoDB na základě pozice prvku

  3. Převeďte DBObject na POJO pomocí MongoDB Java Driver

  4. Jak extrahujete časové razítko z MongoDB ObjectId v Spring Data MongoDB?