Inhalte anzeigen die älter als ....

Django, Flask, Bottle, WSGI, CGI…
Antworten
chri7
User
Beiträge: 13
Registriert: Donnerstag 6. September 2007, 07:05
Wohnort: Speyer

Hallo zusammen,

ich komm mit den Zope/Plone Büchern kaum zum lesen - und hab schon wieder ein Anforderung.

Ich will eine query Schreiben die mir alle Dokumente der ZODB ausspuckt die älter sind (also das Aktualisierungsdatum) als 3 Monate.

Ich habe im Moment keine Vorstellung wo ich ansetzen soltle - bei SQL wäre das klar, aber wie frage ich die ZODB ab?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

chri7 hat geschrieben:Ich will eine query Schreiben die mir alle Dokumente der ZODB ausspuckt die älter sind (also das Aktualisierungsdatum) als 3 Monate.
Hallo chri7!

Wenn du dich auf Plone beziehst und die Frage so formuliert wäre: "Ich will alle Objekte einer Plone-Site vom Typ "Page" abfragen, die älter als 3 Monate sind", dann wäre das kein Problem.

Ungefär so:

Code: Alles auswählen

results = context.portal_catalog.searchResults(
    Type = "Page",
    modified = {
        "query": [<startdatum>, <enddatum>],
        "range": "minmax"
    }
)
Einfach so die komplette Zope-Datenbank durchlaufen wird schwierig, da du nicht für alles die benötigen Rechte hast. Du müsstest also auch auf Fehler reagieren. Außerdem dürfte das, gegenüber einer Indexabfrage, unwahrscheinlich langsam sein.

Plone von Andy McKay -- Kapitel 11.2 Inhalte suchen und kategorisieren.
Kapitel 11.2.4 -- Abschnitt: Suche in einem Feld- oder Datumsindex.

Wenn du Zope (also alle Ordner und Plone-Sites einer Zope-Instanz) durchsuchen willst, dann musst du jedes Objekt durchlaufen und die "bobobase_modification_time" abfragen.

Damit http://gerold.bcom.at/zope_plone/zope_a ... /zope_dir/ kannst du dir die Attribute eines Objektes ausgeben lassen.
Das ist zum Programmieren mit Zope recht hilfreich.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
chri7
User
Beiträge: 13
Registriert: Donnerstag 6. September 2007, 07:05
Wohnort: Speyer

Moin Gerold,

das sieht ja einfach aus ... aber ich wär so schnell nicht drauf gekommen - danke auch für den Buchverweis :)
Antworten