sql >> Database >  >> NoSQL >> Redis

Alle python-rom-objecten in een lijst krijgen

Er zijn twee problemen met de door u verstrekte code die verklaren waarom u de resultaten krijgt die u krijgt.

Het eerste probleem is dat uw zoekopdracht test.query.filter(url ='.').all() geeft een lege lijst terug. Dit retourneert een lege lijst, simpelweg omdat u geen geldige index hebt om te gebruiken met het filter dat u hebt opgegeven. Je hebt wel 2 indexen voor die kolom - een unieke index (handig om URL's op te zoeken op exacte tekenreeks) en een achtervoegselindex (handig voor het vinden van URL's die eindigen op een bepaalde tekenreeks) - maar geen van beide biedt de mogelijkheid om te filteren op wat zou zijn in de relationele wereld een 'like'-query. Een prefix-index (gemaakt met prefix=True ) zou je test.query.like(url='*.') . laten gebruiken , maar dat zou erg traag zijn (het doet een indexscan in plaats van direct opzoeken[1]).

Om dit soort problemen met index/query's te voorkomen, heb ik QueryError-uitzonderingen toegevoegd wanneer gebruikers proberen hun gegevens te filteren op indexen die niet bestaan. Ik zal 0.31.4 wat later vanavond vrijgeven met die wijzigingen.

De tweede fout die je hebt, die de oorzaak van de uitzondering is, is dat je .count() aanroept zonder argument. Op het punt van uw h.count() oproep, type(h) == list , en Python-lijstobjecten hebben een argument nodig om waarden te tellen die gelijk zijn aan het opgegeven argument in de lijst. Als je de .all() . hebt overgeslagen deel van uw oorspronkelijke query, zou u een query-object terugkrijgen. Dat query-object heeft een .count() methode, en zou een telling van overeenkomende resultaten retourneren.

[1] Niet alle 'like'-query's in rom zijn traag, maar voor snelle zoekopdrachten zijn prefixen zonder jokertekens nodig om het gegevensbereik te beperken om te scannen/filteren.




  1. Redis zoekt naar env redis url-variabele weet niet waar env-variabele slechte URI (is geen URI?):(URI::InvalidURIError)

  2. MongoDB pull-array-element uit een verzameling

  3. HBase-upgrade bovenop Event Sourcing en CQRS-architectuur in 3 weken

  4. 2 manieren om een ​​index zichtbaar te maken in MongoDB